IndexError: list index out of range when no argument is supplied

IndexError: list index out of range when no argument is supplied

我只想知道为什么这段代码在没有提供任何参数的情况下生成 IndexError: list index out of range

script.py

import sys
a = sys.argv[1]
print(a)

带有 argument/s

的示例输出
user@linux:~$ python3 script.py abc
abc
user@linux:~$ python3 script.py abc def
abc
user@linux:~$

不带 argument/s

的示例输出
user@linux:~$ python3 script.py
Traceback (most recent call last):
  File "script.py", line 2, in <module>
    a = sys.argv[1]
IndexError: list index out of range
user@linux:~$

我的参考:https://www.pythonforbeginners.com/system/python-sys-argv

List sys.argv 包含您的命令行参数(索引 0 是命令本身,其余是参数)。因此,如果您不提供参数,则列表仅包含一项(只有 sys.argv[0])。

Here's 官方 Python 文档。

来自 python 文档 sys.argv returns:

The list of command line arguments passed to a Python script. argv[0] is the script name (it is operating system dependent whether this is a full pathname or not).

问题是,当您 运行 您的脚本没有像 python3 script.py 这样的参数时,您试图通过使用 sys.argv[1] 访问 index 1 处的元素,但实际上该元素甚至不存在于列表中。 因此,python 解释器抛出一个 IndexError.