每当我通过命令行给出一个数字时,比方说 92,它只需要 9,完全忽略 2。但是,如果我使用 arg[1],它将使用 2 而不是 9。 导入系统
for arg in sys.argv:
print arg
print ""
print "-----"
print ""
try:
argNumber = int(arg[0])
except ValueError:
argNumber = 0
print "This is wrong"
for i in range(argNumber, 0, -1):
print i
此外,出于某种原因,我无法将打印“这是错误的”行添加到 ValueError 除外。它给我一个缩进错误?
请您参考如下方法:
问题是您在 arg[0] 上调用 int。现在,arg 是初始循环遗留下来的,当您遍历 sys.argv 中的所有参数时 - 它是该循环的最后一个元素。因此,当您使用 [0] 对它进行切片时,您实际上是从最后一个参数中获取第一个字符,而不是像您预期的那样从第一个参数中获取。
您的解决方法是在此处简单地使用 sys.argv[1]。
