【发布时间】:2011-05-29 07:05:34
【问题描述】:
免责声明:我已阅读位于 Python Error: "ValueError: need more than 1 value to unpack" 的线程,但没有一个答案解释了如何实际运行代码。
我正在阅读 Learn Python the Hard Way,我正在练习第 13 题。
这是我试图在 Python 2.7 的 IDLE 事物(不知道它的真正名称)中运行的代码:
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
运行时出现错误:
"Traceback(最近一次调用最后一次): 文件“C:\Python\LPTHW\examples_LPTHW\ex13.py”,第 3 行,在 脚本,第一,第二,第三 = argv ValueError: 需要超过 1 个值才能解压"
我尝试通过 Windows 命令提示符运行程序,但无济于事。我还通过在 IDLE 和命令提示符下键入:“python ex13.py first 2nd 3rd”来运行程序,也得到了同样的错误。
我如何让这段代码运行,我到底做错了什么?
编辑:@John Machin,我制作了一个与您发布的完全一样的程序,将其保存为 .py,然后进入保存我的文件的正确目录,使用“python yourcode.py BCD”运行该程序我收到以下消息“python 未被识别为内部或外部命令......”当我通过输入它的名称运行程序时(适用于除此之外的所有其他程序)我收到一条错误消息“SyntaxError:第 2 行的语法无效:print len(argv), repr(argv)"。
编辑 2(使用新代码):@John Machin,我将您的程序逐字复制到 gedit 并照常制作 .py 文件。我打开终端(命令提示符)并输入:
python ex13c.py B C D
并收到:
'python' is not recognized as an internal or external command, operable program or batch file."
然后我输入:
ex13c.py
并收到:
3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)]
1 ['C:\\Python\\LPTHW\\examples_LPTHW\\ex13c.py']
Traceback (most recent call last):
File "C:\Python\LPTHW\examples_LPTHW\ex13c.py". line 4, in (module)
a, b, c, d = argv
ValueError: need more than 1 value to unpack
请记住,我正在运行 W7 64 位,并且 Zed 正在使用 2.X 进行教学,并且到目前为止我一直在使用 2.7 整本书。其他所有示例都有效。就在我开始示例 11 之前,我为即将开始阅读的另一本书安装了 3.1。每次我使用 2.7 附带的 IDLE。也许我在尝试在 2.7 中编码时不经意间使用了 3.1?
感谢您对我的包容。
【问题讨论】:
-
如果您在该行之前打印 argv,输出是什么?
-
在哪一行之前打印 argv?咆哮:我不明白为什么这个程序不起作用。我正在做所有用 LPTHW 编写的东西。
-
打印 argv 在哪里?看我的回答。
-
因此您必须运行 Python 3.X(一旦您解决了“解包”问题,原始代码中的打印语句也会遇到同样的问题。请参阅我编辑的答案。
标签: python