对Python参数变量的了解加深

时间:2019-01-17 11:32:34

标签: python python-3.x

对于以下名为ex13.py的Python脚本:

from sys import argv

script, first, second, third = argv

print("The script is called:", script)
print("Your first variable is:", first)
print("Your second variable is:", second)
print("Your third variable is:", third)

我对以下代码行有疑问:

 script, first, second, third = argv

我们要说的是,argv以此顺序分配给左侧的四个变量。

然后,当我在终端中使用此脚本时:

python ex13.py first 2nd 3rd

我知道我们正在使用终端作为输入方法将变量传递给脚本。但是,让我感到困惑的是。

当我编写基本的Python脚本时,我的称呼方式是:

python ex3.py

我是否正确地说这个python ex3.py没有传递单个命令行参数,而python ex13.py first 2nd 3rd却传递了几个参数?

1 个答案:

答案 0 :(得分:1)

从命令行工作时,argv返回一个命令行参数列表,其中第一个(在零argv[0]处,我们得到在pyhton名称之后使用的python文件名)

从第一个位置开始,这些值与接收自变量的顺序有关。请注意,如果您使用可选参数(python myscript.py -p 127.0.0.1),则这些参数也计入argv。这样您将获得argv[1] == -p

  

我是否正确地说,这个python ex3.py没有传递单个   命令行参数和python ex13.py first 2nd 3rd正在传递   几个?

不,您不正确,python ex3.py传递了1个参数argv[0] = ex3.py