【问题标题】:Command line arguments, sys.argv命令行参数,sys.argv
【发布时间】:2014-12-08 06:00:15
【问题描述】:

我正在阅读Learn Python the Hard Way(第 3 版),我正在尝试一个练习,但我无法获得它;参数和参数的东西(Exercise 13)。

我已经阅读了网站上针对同一问题的其他答案,但我的疑虑仍然存在。有人可以向我解释一下这段代码吗?

from sys import argv
script, first, second, third = argv
print "The script is called:", script
print "Your first variable is:", first
print "Your third variable is:", third
print "Your second variable is:", second

【问题讨论】:

  • 你到底有什么不明白的?你明白一些线吗?一个都没有?您阅读了哪些“网站上的其他答案”;他们更清楚地说明了什么;还有什么还不清楚?你读过所有的解释吗?你做过学习练习吗?发生了什么?为什么你认为这里的答案会比 LPtHW 本身更好?请看meta.stackoverflow.com/q/253894/3001761
  • 我知道我的问题很笼统,但是“脚本,第一,第二,第三= argv”这部分具体来说以及关于 argv 的一些概念上的清晰,以及如何使用它应该会有所帮助......
  • 具体部分在 Ex. 13(代码后的第三段,从 'Line 3 "unpacks" argv' 开始)。此外,运行代码应该清楚发生了什么。还解释了何时使用argvraw_input(参见第二个“学生常见问题”)。
  • 好的,知道了。 “如果他们在命令行上给你的脚本输入,那么你使用 argv。如果你希望他们在脚本运行时使用键盘输入,那么使用 raw_input()。”好的,但如果有“简单易懂且实用”的 argv 示例仍然会很好吗?...对于非程序员...
  • 这正是该练习旨在为您提供的...

标签: python python-2.7 command-line-arguments argv sys


【解决方案1】:

正如@jonsharpe 在他的评论中所说,您提供的程序运行如下:

  1. 加载对模块sys的引用,获取元素argv并将其存储在全局变量中。
  2. 取出argv全局变量并解压它的值,然后按顺序保存每个值:将第一个保存在script,第二个保存在first,第三个保存在second,第四个保存在@ 987654327@。当没有足够的值可以解包以存储在变量中时,此步骤可能会引发错误。
  3. 打印字符串The script is called:,后跟script 保存的值。如果script 包含非字符串值,则写入str(script) 的值。
  4. 打印字符串Your first variable is:,后跟first 保存的值。
  5. 打印字符串Your second variable is:,后跟second 保存的值。
  6. 打印字符串Your third variable is:,后跟third 保存的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2015-09-27
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多