import sys
def Hello(name):
name = name + '!!!'
print 'Hello' , name
def main():
Hello(sys.argv[1])
if __name__ == '__main__':
main()
这是错误
Traceback (most recent call last):
File "D:\pythonPractice\firstPython.py", line 13, in <module>
main()
File "D:\pythonPractice\firstPython.py", line 9, in main
Hello(sys.argv[1])
IndexError: list index out of range
我也尝试了sys.argv [2],但错误仍然是
答案 0 :(得分:3)
首先,我认为您最初发布的代码(使用Hello(sys.argv[0])
)并不是您实际拥有的代码。它与错误无关,状态为sys.argv[1]
,因此可能的错误是:
def main():
Hello(sys.argv[1])
关于错误,那是因为你在运行时没有提供参数。您需要这样做,以便sys.argv[1]
存在:
python helloprog Pax
你会发现一个更强大的main
:
def main():
if len(sys.argv) < 2:
Hello("whoever you are")
else:
Hello(sys.argv[1])
将检测您何时未提供参数,并使用合适的默认值而不是引发异常。
答案 1 :(得分:1)
你使用过
吗?sys.argv[0]
由于这会返回一个列表,因此您可能没有元素&gt; 1