我正在使用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']
这可能是什么原因,我怎么能纠正它?
更新: 我按照建议尝试通过终端运行这个,这是我收到的回复。
答案 0 :(得分:1)
正如错误所示 - ValueError: too many values to unpack
。右侧有太多的值,但左侧没有足够的名称/变量来接受它们。
在您的情况下,您的argv
有5个元素,但您尝试将它们存储在4个元素中。我猜这是与ipython-notebook相关的东西。
您应该从命令行(终端)调用脚本(正如练习告诉您的那样) -
python <file> <args>
答案 1 :(得分:0)
只需从终端执行您的脚本,如下所示:
$> python ex13.py user_name