python 无效字面值错误
我有一段代码:
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。
4 个回答
0
看起来你的输入中多了一个"
字符。int()
这个函数只会把完全由数字组成的字符串转换成整数,默认是十进制(也就是只接受[0-9]这些数字)。如果字符串中出现了其他字符,就会报错。
0
看起来你在输入的时候加了双引号("
),但是int()
这个函数不知道怎么处理这些引号。你需要先把它们去掉:
data = input().strip('"')
4
根据你的代码,你输入的内容应该是用逗号分开的数字。你不需要加引号,只需输入 1,2,3
就可以了,别的什么都不要。如果你是在写代码中的字符串,那才需要引号。在这种情况下,你只是输入数据,而这些数据本身已经是字符串了。
问题在于,你实际上输入的是 "1,2,3"
,这样程序会试图解析字符串中的第一个数字 "1
,但这样是不对的。