如何在python 3中获取数组中的输入

时间:2019-06-16 01:06:05

标签: python python-3.x

我试图将输入传递给数组,但是会引发错误。

我已经在数组中定义了值类型。我为数组分配了'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)'

1 个答案:

答案 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])