【发布时间】:2021-12-07 01:06:55
【问题描述】:
我一直在尝试使 sys.argv[] 根据用户输入的参数数量来更改其输出。我正在努力做到这一点,如果没有 sys.argv[5],那么它将使用 sys.argv[4]。目前,当我尝试将 sys.argv[5] 留空时,我总是尝试解决我的问题 IndexError: list index out of range 这两种想法:
if len(sys.argv) is 4:
location = int(sys.argv[1])
order = sys.argv[2]
amount = sys.argv[3]
user = sys.argv[4]
company= sys.argv[4]
print(company)
else:
location = int(sys.argv[1])
order = sys.argv[2]
amount = sys.argv[3]
user = sys.argv[4]
company= sys.argv[5]
print(company)
还尝试将 "if len(sys.argv) is 4:" 更改为 "if sys.argv[5] != True:"。我已经阅读了一些关于解决索引的帖子,但只是不知道如何实际定制代码以供我自己使用。
谢谢!
【问题讨论】:
-
列出索引从零开始,如果
len(sys.argv) == 4,那么第一个索引是0,最后一个索引是3 -
你为什么使用
is? -
是的,我刚刚发现索引实际上是 5 而不仅仅是 4 @lain Shelvington。
-
我应该使用“==”@klutt 吗?我想知道它,因为我经常使用'is',它仍然有效。
-
@Mythorim 你应该做的是阅读两者的作用。这里使用
is是一件很奇怪的事情。
标签: python if-statement arguments parameter-passing index-error