" ValueError:解包的数量太多"在学习Python艰难的方式,Ex 13

时间:2015-07-19 02:56:33

标签: python python-2.7 ipython-notebook

我正在使用Macbook Pro,运行OS X Yosemite 10.10.4,并且正在阅读“学习Python艰难之路”中的练习。我在iPython笔记本上运行这些,其配置如下:

  

Python 2.7.10 | Anaconda 2.2.0(x86_64)| (默认2015年5月28日,   17:04:42)[GCC 4.2.1(Apple Inc. build 5577)]

在Ex13上,列在http://learnpythonthehardway.org/book/ex13.html上 我在网站上输入和/或复制了确切的代码,但收到了错误。

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

运行上面的代码时,我收到的错误信息是:

  

ValueError Traceback(最近一次调用   最后)in()   ----> 1个脚本,第一个,第二个,第三个= argv

     

ValueError:要解压缩的值太多

我尝试逐行运行代码,发现问题出在我为argv分配多个值时。例如,下面的代码完全执行。

from sys import argv
script = argv
print "The script is called:", script

上述代码的输出是:

  

该脚本被调用:   [' /Users/myusername/anaconda/lib/python2.7/site-packages/IPython/kernel/的的.py&#39 ;,   ' -f&#39 ;,   ' /Users/myusername/.ipython/profile_default/security/kernel-261810c2-9f04-44d4-95f7-411e0db361ff.json' ;,   ' - profile-dir',' /Users/myusername/.ipython/profile_default']

这可能是什么原因,我怎么能纠正它?

更新: 我按照建议尝试通过终端运行这个,这是我收到的回复。 enter image description here

2 个答案:

答案 0 :(得分:1)

正如错误所示 - ValueError: too many values to unpack。右侧有太多的值,但左侧没有足够的名称/变量来接受它们。

在您的情况下,您的argv有5个元素,但您尝试将它们存储在4个元素中。我猜这是与ipython-notebook相关的东西。

您应该从命令行(终端)调用脚本(正如练习告诉您的那样) -

python <file> <args> 

答案 1 :(得分:0)

只需从终端执行您的脚本,如下所示:

$> python ex13.py user_name