2011-03-16 88 views
0

所以我有這樣的代碼蟒蛇無效的文字錯誤

data = input() 
m = data.split(',') 

for i in range(0, len(m)): 

    print(int(m[i])) 

但後來當我運行它,鍵入「1,2,3」,我得到這個錯誤:

print(int(m[i])) 
ValueError: invalid literal for int() with base 10: '"1' 

做什麼我做錯了?

使用python 3

回答

3

由於您有自己的代碼,所以您輸入的輸入應該是以逗號分隔的數字。您不必包含引號,只需鍵入1,2,3,而不是其他任何內容。只有在編寫寫入字符串文字的實際代碼時,才需要引號。在這種情況下,你只需要輸入,它已經是字符串。

問題是,你正在輸入字面意思"1,2,3",它試圖解析第一個int字符串,"1這是無效的。

0

看來你在文字引號(")作爲輸入的一部分輸入; int()不知道如何解析這些。您需要先將它們去除:

data = input().strip('"') 
0

看起來您的輸入中有一個額外的"字符。 int()只會轉換僅由所選基數中的數字組成的字符串(默認基數爲10,因此它接受[0-9])。如果任何其他字符出現在字符串輸入中,則會引發此錯誤。

0

你輸入input

"1,2,3" 

適合Python的2 input。 Python 3 input就像Python 2 raw_input,它的所有輸入已經被認爲是一個字符串。