python - 如何在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)'
解决方案
您将其输入到 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])
推荐阅读
- javascript - 为什么我的回调函数在嵌套函数中不起作用?
- string - Perl:将字符串转换为 Unicode
- php - PHP 需要帮助上传多个文件
- powershell - 尝试将 foreach 结果集导出到 Excel 或 CSV
- angular - event.target.focus() 不将元素焦点设置在重新排序的数组元素上(但只有当元素向上移动时,向下移动才能正常工作)
- reactjs - 如何在 wordpress 中加载反应应用程序部署文件路径?
- openssl - 在 parrot os 上安装 mana 工具包时出现问题
- .net - 具有主机名的 IIS 站点,cookie 未发送到服务器
- python - 显式属性与@Property 有什么区别?
- c# - ASP.NET Core 检查 ActionFilterAttribute 中的 ClientCertificate