当前位置: 首页 > 面试题库 >

Python术语:学习Python困难方式练习13中“ = argv”左边的内容

柴茂材
2023-03-14
问题内容

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


 类似资料:
  • 问题内容: 我正在执行Zed Shaw的精彩学习Python The Hard Way ,但我遇到了一个额外的问题:9– 10行可以写成一行,怎么写?我尝试了一些不同的想法,但无济于事。我可以继续前进,但是那会带来什么乐趣呢? Zed还写道,他可以在一行中完成整个脚本。我不确定他的意思。 随时随地为我提供帮助:给出答案或仅作提示-甚至可能包含对该问题的模糊或隐藏答案。 问题答案:

  • 问题内容: http://learnpythonthehardway.org/book/ex6.html Zed在这里似乎可以互换使用,两者之间有什么区别吗?为什么不一直使用呢? 另外,我不确定要在文档中搜索什么以找到关于此的更多信息。什么是和究竟叫什么名字?格式化字符串? 问题答案: 它们称为字符串格式化操作。 %s和%r之间的区别在于%s使用函数,而%r使用函数。你可以阅读有关之间的差异,并在

  • 在其它类似Ruby的语言中,switch语句可以处理任意类型的表达式。一些语言比如Python没有switch语句,因为带有布尔表达式的if语句可以做相同的事情。对于这些语言,switch语句比if语句更加灵活,然而内部的机制是一样的。 C中的switch语句与它们不同,实际上是一个“跳转表”。你只能够放置结果为整数的表达式,而不是一些随机的布尔表达式,这些整数用于计算从swicth顶部到匹配部分

  • 问题内容: 由于某种原因,当游戏到达金牌室时,它将无法正常工作。当我输入任何数字时,我会收到死亡消息“男人,学会键入数字” 谢谢 编辑:键入一个有效,但2不起作用 问题答案: 您在以下位置执行此操作: 它只检查是否为,所以‘2’不起作用并不奇怪,对吗? 您想要的就是这些路线 也可以无例外地做到这一点,但是请记住,避免像例外一样重要和根本的事情是一个非常糟糕的主意。我希望这本书至少在以后能使这一点变

  • 注: 内容翻译自 Glossary 这份文档定义etcd文档,命令行和源代码中使用的多个术语。 Node / 节点 Node/节点是raft状态机的一个实例。 它有唯一标识,并内部记录其他节点的发展,如果它是leader。 Member / 成员 Member/成员是etcd的一个实例。它承载一个node/节点,并为client/客户端提供服务。 Cluster / 集群 Cluster/集群由多

  • 问题内容: python有哪些最先进的框架和工具可用于实践行为驱动开发?特别是找到像rspec和mocha这样的红宝石工具会很棒。 问题答案: Ian Bicking建议将doctest用于行为驱动的设计: 我个人倾向于以行为驱动的设计风格使用鼻子和空隙模拟。具体来说,鼻子的规范插件非常适合BDD。