用Python玩轉資料 尋找輸入數字中的全數字

2021-10-23 07:00:05 字數 1680 閱讀 6256

貼題:資料表示程式設計題

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 ...