【发布时间】: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 是强类型,它不进行隐式转换。