2017-09-09 113 views
-2

我正在嘗試獲取人員輸入的整數和浮點數列表。所以如果他們輸入「1,2,3,4,5,6,7.2」,list_numbers會= [1,2,3,4,5,6,7.2]。出於某種原因,當它達到「7.2」時,它會認爲「」。是val(我添加了print(val),所以你可以在輸出中看到這一點)。林新的Python 3.6,我以前用2.7所以請原諒我的無知無法將列表中的字符串轉換爲浮點數

numbers=input("Enter 7 numbers separated by spaces: ") 

print(numbers.split(",")) 

list_numbers=[] 
for val in numbers: 
    if val!=",": 
     if '.' in val: 
      print(val) 
      list_numbers.append(float(val)) 
     else: 
      list_numbers.append(int(val)) 



print(list_numbers) 
+1

你的for循環逐個字符地迭代,所以當然在某個點'val'變成「。」。 – pvg

+1

for val in numbers.split(「,」) – user189

+0

@ user189我明白了,我以爲剛纔輸入numbers.split(「,」)會這樣做,但我可能會想要做numbers = numbers.split(「, 「)。謝謝,它的工作原理! – Addison

回答

2

.split不會改變你的字符串,因此,它會返回一個新的列表,然後可以遍歷。但是,您只是打印.split的列表結果,然後逐個字符地遍歷原始輸入字符串。

.split的輸出分配給一個新變量,然後迭代該變量。

希望這會有所幫助!

相關問題