【发布时间】:2014-09-04 21:25:22
【问题描述】:
我正在学习 Python The Hard Way 中的 ex13
我正在尝试通过:
python ex13.py raw_input() raw_input() raw_input()
我的代码如下:
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 (most recent call last):
File "ex13.py", line 5, in <module>
script, first, second, third = argv
ValueError: too many values to unpack
我想知道为什么会出现这个错误以及如何解决它
【问题讨论】:
-
你不能通过
raw_input()!以下对我来说很好:python test.py 1 2 3 -
您使用的是什么操作系统?
-
当您通过
raw_input()时,它实际上不会允许原始输入。在命令行中,它将从 argv 传递 arg1、arg2 和 arg3 字符串raw_input,arg0 仍将保留脚本名称。但是,这不应该引发错误,因为 argv 会产生值 -
要修复“太多值”异常,你真的需要
print argv看看那里有什么。这仍然无法解决@ZWiki 提出的问题(命令行参数只是字符串,而不是要执行的代码,因此您只需将字符串'raw_input()'作为first的值,等等——假设您的 shell 不会尝试将其解释为函数调用(例如,bash会,但cmd不会),但它会让您克服异常,因此您可以解决该问题,即是进步。