首页 > 解决方案 > 如何在python 3中输入数组

问题描述

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

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

标签: pythonpython-3.x

解决方案


您将其输入到 REPL 环境中,因此每次输入一行时,它都会运行(或多或少),因此当您输入该行时:

a = arr.array('i', [int(input())])

之后的行期待输入 for input而不是下一行代码。因为您然后键入print(a)您将值传递"print(a)"int,本质上是:

a = arr.array('i', [int("print(a)")])

显然"print(a)"不是以 10 为底的数字,因此int失败是因为"p"它不是以 10 为底的字符(数字 0 到 9 是唯一有效的数字)。

要解决此问题,您需要在继续执行代码input 之前传递一个值:

>>> import array as arr
>>> a = arr.array('i', [int(input())])
5
>>> print(a)
array('i', [5])

推荐阅读