每当我通过命令行给出一个数字,比如说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
另外,由于某些原因,我无法在except ValueError中添加打印“This is wrong”行。它给我一个缩进错误?你知道吗
您正在使用循环变量
arg
,因此您正在访问sys.argv[1]
的第一个字符,而不是整个字符串。尝试:我在你的代码片段中没有看到“这是错误的”一行,所以我不能对此发表评论。你知道吗
最后,在每行前面放置4个空格是目前唯一的方法。如果他们支持某种类型的代码隔离(比如GitHub),那就好了,但是他们不支持
问题是您在
arg[0]
上调用int。现在,arg
是初始循环的剩余部分,当您遍历sys.argv
中的所有参数时-它是该循环的最后一个元素。因此,当您使用[0]
对其进行切片时,实际上是从最后一个参数中获取第一个字符,而不是您想要的第一个参数。你知道吗您的解决方案是简单地在那里使用
sys.argv[1]
。你知道吗循环运行后,arg包含传递的最后一个参数的值,作为字符串。你知道吗
在您的特定情况下,
arg = '92'
。所以当你做arg[0]
,你得到'9'
,arg[1]
给你'2'
如果需要第一个参数,请使用
sys.argv[1]
。你知道吗相关问题 更多 >
编程相关推荐