【问题标题】:pass integers into array from argv in Python [duplicate]在Python中将整数从argv传递到数组中[重复]
【发布时间】:2015-01-30 18:37:04
【问题描述】:

我想通过 sys.argv 将一些整数值传递到一个数组中,但我得到了一个 TypeError。 如何从 argv 列表中将整数传递到我的数组中?我必须进行显式转换吗?

#!/usr/bin/python
from array import array
import serial, sys

ser = serial.Serial('/dev/ttyACM0', 9600)
a=array('i',(0 for i in range(1, 3)))

a.append(sys.argv[1])
a.append(sys.argv[2])
a.append(sys.argv[3])

print(a.range(0-2))

这是错误:

$ ./a.py 2 3 4
Traceback (most recent call last):
  File "./a.py", line 8, in <module>
    a.append(sys.argv[1])
TypeError: an integer is required

我知道 array('i') 是一个整数数组,而 sys.argv 是一个列表项。 我只是不知道如何让 sys.argv 成为 int。

【问题讨论】:

  • 我不知道您希望a.range(0-2) 做什么,但其余的可以在一行中完成:a = array('i', map(int, sys.argv[1:4]))。 Python 是强类型,它不进行隐式转换。

标签: python arrays


【解决方案1】:

替换:

a.append(sys.argv[1])
a.append(sys.argv[2])
a.append(sys.argv[3])

与:

a.append(int(sys.argv[1]))
a.append(int(sys.argv[2]))
a.append(int(sys.argv[3]))

还有这个:

print(a.range(0-2))

与:

print(a[0:2]) # or print(a) 

否则会抛出另一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2018-05-14
    • 1970-01-01
    • 2019-12-26
    • 2015-10-22
    • 1970-01-01
    • 2013-05-18
    相关资源
    最近更新 更多