python - 我越来越需要多个值来解压值错误

标签 python

<分区>

这是我的程序

from sys import argv
script, first, second, third = argv
print ("the script is:", script)
print("the first variable is:", first)
print("the second variable is:", second)
print ("the third variable is:", third)

错误是:

Traceback (most recent call last):
  File "C:/Users/ravikishore/PycharmProjects/Test/.idea/MyPython.py", line 2, in <module>
    [script, first, second, third] = argv
ValueError: need more than 1 value to unpack

最佳答案

argv 是一个列表:

>>> from sys import argv
>>> type(argv)
<type 'list'>

因此,您正在尝试将列表转换为元组,只有当元组中的元素数量完全与列表长度匹配时才有效:

>>> a,b,c = [1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
>>> a,b,c = [1,2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 2 values to unpack
>>> a,b,c = [1,2,3]
>>> a,b,c = [1,2,3,4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack

因此您需要在尝试转换之前对 argv 长度添加一些检查。

关于python - 我越来越需要多个值来解压值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39008742/

相关文章:

python - 将字符串中的每个其他字母大写

python - 如何用模式拆分 2 列?

Python,jsonpath_ng : Exception: Parse error at 1:4 near token ?(?)

python - 在 python 的 Windows 上,可能使用 Outlook API,如何从用户的较小登录名获取用户的全名?

python wtf AttributeError : 'ObjectIdField' object has no attribute 'help_text'

python - 自定义 virtualenv `activate` 脚本

python - 单个函数的参数数量可变

python - 如何从 python pptx 生成的幻灯片中删除空白文本框?

python - 如何制作 "python setup.py install"安装源而不是 egg 文件?

python - 创建连接公共(public)点的线