命令行 - int() 参数必须是字符串、类似字节的对象或数字,而不是 'list'
command line - int() argument must be a string, a bytes-like object or a number, not 'list'
我得到了一个非常基本的代码:
import sys
file = sys.argv[0]
arg = int(sys.argv[1:])
def multiplier(x):
if arg < 1:
print('Put an argument in')
else:
totals = 1
for i in range(1,x+1):
totals *= i
return totals
print(multiplier(arg))
我正在尝试从命令行 运行 执行此操作,但我不断收到此错误:
File "program.py", line 4, in <module>
arg = int(sys.argv[1:])
TypeError: int() argument must be a string, a bytes-like object or a
number, not 'list'
我明白这个错误,但我是命令行的新手,所以我对命令行上下文有点困惑。
如果一切顺利,我期待这样的结果 (Input/output):
>>> Python program.py 10
3628800
如果有人有任何建议,将不胜感激!
方括号中的冒号表示前面列表对象的一部分。在这种情况下,您只需要第二项(索引为 1),而不是列表的一部分 sys.argv
从索引 1 开始:
arg = int(sys.argv[1])
我得到了一个非常基本的代码:
import sys
file = sys.argv[0]
arg = int(sys.argv[1:])
def multiplier(x):
if arg < 1:
print('Put an argument in')
else:
totals = 1
for i in range(1,x+1):
totals *= i
return totals
print(multiplier(arg))
我正在尝试从命令行 运行 执行此操作,但我不断收到此错误:
File "program.py", line 4, in <module>
arg = int(sys.argv[1:])
TypeError: int() argument must be a string, a bytes-like object or a
number, not 'list'
我明白这个错误,但我是命令行的新手,所以我对命令行上下文有点困惑。
如果一切顺利,我期待这样的结果 (Input/output):
>>> Python program.py 10
3628800
如果有人有任何建议,将不胜感激!
方括号中的冒号表示前面列表对象的一部分。在这种情况下,您只需要第二项(索引为 1),而不是列表的一部分 sys.argv
从索引 1 开始:
arg = int(sys.argv[1])