我已经查看了已经回答的问题,但我仍然感到困惑。我已经运行了100次代码并且我一直得到相同的“ValueError:需要超过1个值来解压缩”错误,所以显然有些东西不是为了我而计算(看看我在那里做了什么?)。有人可以看看我的代码并向我解释,就像你会把孩子搞砸了吗?
显然,我出于纯粹的挫败感偏离了课程中的条款
我写的是:
from sys import argv
script, called, coding, confusing = argv
print "The script is called:", script
print "Your first variable is:", called
print "Your second variable is:", coding
print "Your third variable is:", confusing
我应该在终端输入一些特殊的东西,还是我只缺少一些代码?
答案 0 :(得分:4)
argv
是一个元组,包含调用脚本的参数。调用它时,需要为脚本传递必要数量的参数:
python myscript.py param_called param_coding param_confusing
更进一步:
您正在使用名为解包的语法。这意味着左侧不是单个变量,而是变量的“序列”(元组)。在左侧,您还需要一个具有相同数量元素的序列,如列表或元组。左侧的每个变量将从右侧分配相应的值。见the tutorial about tuples and sequences(最后一段)。
关于左侧,argv
或更好sys.argv
,这是一个包含脚本名称作为第一个元素和命令行参数的元组。请参阅argv。
全部放在一起:您想要将上面示例sys.argv
中的("script.py", "param_called", "param_coding", "param_confusing")
解压缩到script,called,coding,confusing
,因此变量script
会影响字符串{{1 },"script.py"
字符串called
等等。
此方法的缺点是,如果命令行的参数太少或太多,则解压缩失败。
答案 1 :(得分:1)
您的代码是正确的,但正如说明书中所指定的那样,您必须提供3"参数"进入命令提示符
ex:$ python ex13.py称编码令人困惑 以上打印出来的命令提示符:
该脚本名为:ex13.py 你的第一个变量是:被叫 你的第二个变量是:编码 你的第三个变量是:confused