我有一个非常基本的代码:
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'
我理解的错误,但我是新来的命令行,所以我有点在命令行上下文混淆。
如果一切顺利,我希望这样的事情(输入/输出):
>>> Python program.py 10
3628800
如果任何人有任何建议,这将是非常感谢!
在方括号中的冒号表示前述列表对象的切片。在这种情况下,你只想要第二个项目(索引1),而不是一个列表的片段sys.argv
从索引1开始:
arg = int(sys.argv[1])