Python错误:“ValueError: 需要多个值去解包”
在Python中,当我运行这段代码时:
from sys import argv
script, user_name =argv
prompt = '>'
print "Hi %s, I'm the %s script." % (user_name, script)
我得到了这个错误:
Traceback (most recent call last):
script, user_name =argv
ValueError: need more than 1 value to unpack
这个错误是什么意思呢?
8 个回答
4
你不能在交互式解释器中直接运行这段代码。你需要先把它保存到一个文件里,然后像这样给它传递参数。
$ python hello.py user338690
8
你遇到的错误是“ValueError: need more than 1 value to unpack”,这是因为你只提供了一个值,也就是这个脚本(在这个例子中是ex14.py)。
问题在于,你在运行.py文件后忘记加上一个名字。
你代码的第3行是
script, user_name = argv
这个脚本是ex14.py,你忘记在后面加上名字了。
所以如果你的名字是michael,那么你在终端输入的内容应该像这样:
> python ex14.py michael
做这个修改后,代码就能完美运行了。
40
可能是你在命令行中没有提供参数。在这种情况下,sys.argv
里只会有一个值,但它需要有两个值,才能给 user_name
和 script
提供数据。