Подтвердить что ты не робот

Ошибка Python: "ValueError: требуется больше, чем 1 значение для распаковки"

В 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

Что означает эта ошибка?

4b9b3361

Ответ 1

Вероятно, вы не указали аргумент в командной строке. В этом случае sys.argv содержит только одно значение, но для предоставления значений для user_name и script должно быть два, чтобы

Ответ 2

youre get '' ValueError: требуется больше, чем 1 значение для распаковки '', потому что вы дали только одно значение, script (в данном случае это ex14.py)

проблема заключается в том, что вы забыли добавить имя после запуска файла .py.

строка 3 вашего кода

script, user_name = argv

script - ex14.py, вы забыли добавить имя после

поэтому, если ваше имя было майхалом, так что вы входите в терминал, должно выглядеть примерно так:

> python ex14.py michael

сделайте это изменение, и код работает отлично

Ответ 3

Вы не можете запустить этот фрагмент кода в интерактивном интерпретаторе. Сначала вам нужно сохранить его в файл, чтобы вы могли передать ему аргумент следующим образом

$ python hello.py user338690

Ответ 4

Вы не должны выполнять разыменование шрифта по значениям, которые могут измениться, как ваша строка ниже.

 script, user_name = argv

Строка выше не будет выполнена, если вы передадите менее одного аргумента или более одного аргумента. Лучший способ сделать это - сделать что-то вроде этого:

 for arg in argv[1:]:
     print arg

Из-за этого вы будете делать что-то другое, кроме как распечатать args. Может быть, поместить в операторский цикл цикл "if", который задает переменные в зависимости от переданных аргументов. Еще лучший способ - использовать пакеты getopt или optparse.

Ответ 5

Вам нужно передать аргументы в терминале, чтобы сохранить их в 'argv'. Эта переменная содержит аргументы, которые вы передаете на свой Python script при запуске. Затем он распаковывает аргументы и сохраняет их в разных переменных, указанных в программе, например.

script, first, second = argv
print "Your file is:", script
print "Your first entry is:", first
print "Your second entry is:" second

Затем в командной строке вы должны запустить свой код следующим образом:

$python ex14.py Hamburger Pizza

Ваш вывод будет выглядеть следующим образом:

Your file is: ex14.py
Your first entry is: Hamburger
Your second entry is: Pizza

Ответ 6

Вы должны запустить свой код следующим образом, чтобы получить свой вывод,

python file_name.py user_name

Ответ 8

Эта ошибка связана с тем, что

argv #, которая является переменной аргумента, которая удерживает переменные, которые вы передаете, с вызовом script.

теперь вместо этого

Python abc.py

делать

python abc.py yourname {передайте переменную, которую вы создали для хранения argv}