ValueError:需要多于1个值才能解压缩 - 以艰难的方式学习Python Ex:13

时间:2014-01-10 23:47:52

标签: python

我已经查看了已经回答的问题,但我仍然感到困惑。我已经运行了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

我应该在终端输入一些特殊的东西,还是我只缺少一些代码?

2 个答案:

答案 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