问题描述:
a=input().split(",")
b=int(a)
print(b)
Traceback (most recent call last):
File "C:\Users\86178\AppData\Local\Programs\Python\Python312\lianxi2.py", line 2, in <module>
b=eval(a)
TypeError: eval() arg 1 must be a string, bytes or code object
为什么运行上述代码出现了上面的错误呢?
问题解答:
这个错误是因为在 b=int(a)
这行代码中,你试图将一个列表直接传递给 int()
函数,但是 int()
函数不接受列表作为参数。如果你想将输入的字符串列表中的元素转换为整数,你可以使用列表解析或循环来实现。
另外,代码中也出现了一个语法错误,因为 print(b)Traceback
中间没有添加逗号或者空格。
下面是一种修复方法:
a = input().split(",")
b = [int(x) for x in a] # 将列表中的每个元素转换为整数
print(b)
或者你可以使用循环:
a = input().split(",")
b = []
for item in a:
b.append(int(item))
print(b)