Python术语:学习Python困难方式练习13中“ = argv”左边的内容
Zed Shaw的“艰苦学习Python”经常要求您“用英语写出”脚本每一行的功能。我正在努力使用与函数(命令?) argv
相关联的某些东西来做到这一点,因为我不知道该如何命名代码的某些部分。哎呀,我什至不知道该怎么称呼argv —函数?命令吗
变量?我知道这是一个模块。但是回到正轨:
这是练习13中的代码:
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
Zed指出“’argv’是“参数变量”。我的问题是, 第三行等号左侧的事物名称 是 什么?
通俗地讲,我的冲动是将单词本身称为“脚本”,“第一个”等变量,但这似乎不正确,因为按照Zed argv的说法是“参数变量”。
我也不认为称它们为“参数”是正确的。我只在命令行参数方面阅读过“ argument”。
“参数”似乎很可能,因为在练习的标题中已提到,但是使用“等号”,“ =”,“ python”,“
argv”,“定义”等组合进行网络搜索不是很有启发性。当您不知道它们的名字时,搜索它们非常困难。
我很清楚该脚本中发生了什么,只是不清楚其中一部分的名称。我很确定当我回答后,我将拍打我的额头。
-
左边的东西
"="
是 变量 ,它们从右边的变量获取 值 。鉴于:
script, first, second, third = argv
argv
是一个字符串 列表 ,在这种情况下,包含4个项目。这些字符串被“解压”并分配给左侧的四个变量=
。argv
它的值是从命令行调用Python程序时的值,如下所示:test.py this is sure cool
在这种情况下
argv
将包含['test.py', 'this', 'is', 'sure', 'cool']
。命令后的这些字符串称为“
命令行参数
”(请参见本教程)和脚本名称,所有参数都存储在中argv
。这是一种在启动脚本时向脚本发送信息的方法。在这种情况下,变量将获得以下值:
script is set to "this.py" # the string is in argv[0] first to "is" # argv[1] second to "sure" # argv[2]
和
third to "cool" # argv[3]
所以:
script, first, second, third = argv
实际上等于:
script = argv[0] first = argv[1] second = argv[2] third = argv[3]
只有Python可以让您一口气完成这项任务。
请注意,您可以使用适当的索引值以任何顺序提取命令行参数。
该机制用于将信息传达给Python脚本。您可以想象运行一个需要输入文件和输出文件的程序。您可以在命令行中提供它们,而不是在脚本中对其进行硬编码。例如,
computeData.py input.txt result.txt