貼題:資料表示程式設計題
1.輸入的格式是字串,需要轉換成數列;
2.數列中的每個值都是字串,把字串用迴圈拆開,轉換成整型,再樹立「全字元」規範進行對比;
3.返回的結果為值是字串型別的列表,通過自定義函式外的for迴圈輸出。
def pandigital(nums):
lst =
for num in nums:
lnum = list(num)
intnum =
for string in lnum:
intnum1 =
for i in range(len(intnum)):
if sorted(intnum) == intnum1:
return lst
if __name__ == "__main__":
lst = pandigital(input().split(','))
for l in lst:
print(int(l))
經過改來改去,終於執行成功,(o゜▽゜)o☆[bingo!]
但是中間經歷了很多挫折:
1.對資料型別不熟悉,所以輸入的型別是什麼,怎麼拆,我都是一步一步輸出驗證出來的。因此在這裡記錄一下字元輸入輸出格式的tips:
# 輸入獲得多個值
x,y = input().split() # 字串,用空格或換行符分隔
x,y = input().split(',') # 字串,用逗號分隔
x,y = eval(input()) # 整數
# 輸入獲得乙個列表
lst = input().split() # 獲得值是字串的列表
lst = list(eval(input())) # 獲得值是整數的列表,輸入的值需要用逗號分隔,空格不行
lst = eval(input()) # 獲得的列表中的值是輸入的列表的值的同型別,輸入的值為列表(好繞)
# 列表解析可以解決上面兩個輸出格式的轉換
lst = input().split()
intlist = [eval(item) for item in lst]
# 函式式程式設計也可以解決,這裡不展開了,詳見下面的補充鏈結
# 輸出的值用非空白分隔符分隔
print(x,y,sep=',')
# 輸出的值在同一行
for i in range(1,5):
print(i,end=' ')
2.樹立「全數字」規範的過程中,用輸入列表的長度來控制;
3.python目前應該是沒有辦法換行返回值,所以不要死腦筋,放在函式外面來解決;
4.注意lst=的位置。之前放錯地方就全都清空,輸出空數列了;
5.靈機一現用了sorted函式來排列,節約了**量,不然估計又要走彎路。
寫完**,勉強可以執行,但是用腳趾頭也知道不夠優美。
修改參考:尋找輸入數字中的全數字(pandigital) python程式設計
強!思路我就不改了,直接抄寫一遍得了。
不過從這段**中我得到了啟發:
1.函式沒有返回值,會告警,但是不會報錯,所以函式內也是可以實現輸出換行的;
2.因為我用了sorted()函式,導致必須把數列中的值換成整型,但是比較可以不從完全相等的角度出發,而是考慮長度等特徵對比,可以實現簡化。
python南京大學 用Python玩轉資料
spcontent 歡迎來到 用python玩轉資料 這是第10次開課,大壯老師會盡量用非計算機專業 需要有一些程式設計基礎,最好學過一門程式語言,但不一定是python 小夥伴們能聽懂的方式講述如何利用簡單易學優雅的python便捷地獲取 表示 分析和展示資料,讓大家愉快地學習用python玩轉資...
《用Python玩轉資料》學習筆記第3周Part1
1 前面我們學到了乙個函式的argument前面有 表示可變長的元組。今天學到了如果argument前面有 則表示可變長的字典。deffunc args1,args2,args3 print args1 print args2 print args3 func a b c d 1,e 2,f 3 a...
Python玩轉資料分析 相關分析
在引數統計中,常用的相關分析方法是 pearson 相關係數,公式如下 r x y i xi x y i y i xi x 2 i y i y 2 r bm frac x i bar y i bar x i bar 2 sum y i bar 2 r x,y i xi x 2 i yi y 2 i ...