python 无效字面值错误

1 投票
4 回答
10367 浏览
提问于 2025-04-16 13:47

我有一段代码:

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,但这样是不对的。

撰写回答