ValueError: not enough values to unpack (expected 4, got 1) Python(笨办法学Python3)

emmm,这是一道《笨办法学Python3》书里的一道题目,遇到的出错的地方,上网搜了很久才发现别人写的不是我先要的解决办法,然后才发现我们这里的问题是出在不懂Python里的 sys模块 argv用法,不知道怎么正确的输入才会出现下面的问题。

ValueError: not enough values to unpack (expected 4, got 1)

下面先来看一下我的代码:

from sys import argv
# read the WYSS section for how to run this
script, first, second, third = argv

print("The script is called:",script)
print("Your first varilable is:",first)
print("Your second variable is:",second)
print("Your third variable is:",third)

#这里命令行要输入如下所示这样子的带有四个参数的
#python ex13.py 1 two 3

看一下我的错误输入:

ValueError: not enough values to unpack (expected 4, got 1) Python(笨办法学Python3)_第1张图片
出现了我们上述所说的错误,原因是我们这里的script, first, second, third = argv,这里应该获得4个我们自己从命令窗口输入的形参,而上面我才输入了1个,即 ex13.py 这个整体被当成一个形参,所以才会出现ValueError: not enough values to unpack (expected 4, got 1)的错误。

下面是正确的输入方法:

python ex13.py 1 two 3

或者

py ex13.py 1 two 3

这种方式可以让argv获得足够的形参,从而才不会报错。(这里ex13.py是我的这个python文件的名字)
ValueError: not enough values to unpack (expected 4, got 1) Python(笨办法学Python3)_第2张图片
注意:这里说的是我的理解,看到书本后面才发现书本有正确的输入示范跟一些解释,书里的解释是把后面三个看作是形参,而前面的(即我上面的ex13.py 不是,而我直接把它当成一个形参来方便自己理解了,因为ex13.py(脚本名)是你必须导入的所以它只需要另外的3个形参即可)

你可能感兴趣的:(ValueError: not enough values to unpack (expected 4, got 1) Python(笨办法学Python3))