2011-03-16 96 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,它的所有输入已经被认为是一个字符串。