Python的术语:事到左的“= ARGV”在学习Python坚硬方式行使13(Python ter

2019-06-27 08:44发布

泽德·肖的“学习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

捷思锐指出“‘argv的’是‘的说法变量。’我的问题是, 是什么的东西,等号左边的名字签在三线?

通俗的讲,我的冲动,是调用的话“脚本”,“第一”等变量本身 - 但似乎并不正确,因为根据Zed的ARGV是“参数变量”。

我不认为称他们为“论据”是正确要么; 我只读过的命令行参数术语“说法”。

“参数”可能看起来,因为它是在运动的标题所提到的,但这样做网络搜索与组合“等号”,“=”,“巨蟒”,“ARGV”,“定义”等不很受启发。 在搜索的事情是非常困难的,当你不知道他们在叫什么。

我对所发生的事情在这个剧本很清楚,我只是不上它的一部分的名称清晰。 我非常肯定我会当这是回答就打我的额头。

Answer 1:

事到左边"="变量得到右边的变量自己的价值

鉴于:

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


Answer 2:

有时,它更容易只需键入一些代码到交互式Python提示,看到这些东西是如何工作的。

虽然sys.argv中是Python本身为您定义的列表,它不是从任何列表或元组(易变的和不可变的类似数组类型的Python),你自己定义的不同。 因此,试图定义一个自己和它玩。 你声明的变量命名后argv = ['123','456','789']这是一个列表类型,尝试将其分配给另一个名字:

  anothername = argv

请注意,什么都不会发生。 现在发现,如果你不是试图给三个不同的变量会发生什么:

  v1,v2,v3 = argv

第一(技术上讲,“第零”)argv中元素存储在V1,argv的的第二个元素被存储在V2,等等。

我相信我会叫V1,V2,V3是“那打算举行的东西,以前是在列表中的argv元素变量列表中,但我希望在自己的地方来解压缩和存储”。



Answer 3:

要回答你的第一个问题, argv是的属性 sys模块。 至于你的第二个问题,Python的文档不为赋值表达式的右边,但指定名称scriptfirst等可以被称为在这方面变量。



文章来源: Python terminology: things to left of “= argv” in Learn Python the Hard Way exercise 13