我试图将输入传递给数组,但是会引发错误。
我已经在数组中定义了值类型。我为数组分配了'i'
,还传递了int
类型值。
>>> import array as arr
>>> a = arr.array('i', [int(input())])
print(a)
这是我得到的错误:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
a = arr.array('i', [int(input())])
ValueError: invalid literal for int() with base 10: 'print(a)'
答案 0 :(得分:1)
您要在REPL环境中键入此内容,因此,每次键入一行时,它都会运行(或多或少),因此,当您输入该行时:
a = arr.array('i', [int(input())])
此后的行期望输入input
,而不是下一行代码。因为您随后输入print(a)
,所以实际上是将值"print(a)"
传递给int
,
a = arr.array('i', [int("print(a)")])
很明显"print(a)"
不是以10为底的数字,所以int
失败是因为"p"
不是以10为底的字符(数字0到9是唯一的有效数字)。 / p>
要解决此问题,您需要在继续执行代码之前为input
传递一个值:
>>> import array as arr
>>> a = arr.array('i', [int(input())])
5
>>> print(a)
array('i', [5])