Упражнение 13 трудный путь Python 3

Я работаю над упражнением 13 из Python усердно. Я пытаюсь изучить Python 3, поэтому я пытаюсь преобразовать код из того, что я изучил в codecademy. Я подумал, что сделал опечатку, поэтому скопировал его код в свою IDE. Я получаю сообщение об ошибке. Не могли бы вы, ребята, объяснить, почему это происходит со мной. Я провел множество поисков и не смог найти никого, кто бы получил эту ошибку. Спасибо, ребята, за помощь. Это точно то же самое, за исключением (), которое нужно запустить.

сценарий, первый, второй, третий = argv

ValueError: для распаковки требуется более 1 значения

 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))

person TriGeo    schedule 07.11.2014    source источник


Ответы (2)


Ошибка в том, что вы не передаете скрипту достаточно аргументов. Это означает, что переменная argv имеет только имя скрипта и не более того. Проверьте это с len(argv)

Вы должны называть это так:

python myscript.py variable1 variable2 variable3

Если вы вызываете свой скрипт из IDE, вам нужно настроить его для передачи дополнительных аргументов.

Вы также можете динамически печатать переменные, переданные скрипту:

print('Script is called: %s' % argv[0])

for var_number, var in enumerate(argv[1:]):
    print('The var number %s is: %s' % (var_number, var))

Кстати, скобки вокруг имен переменных не нужны.

person bgusach    schedule 07.11.2014

Я думаю, вы просто передаете это в командной строке: -

root@root:-# python foo.py 

Вы должны пройти: -

root@root:~# python foo.py first second third 

Выход: -

The script is called: foo.py
Your first variable is: first
Your second variable is: second
Your third variable is: third
person Vishnu Upadhyay    schedule 07.11.2014
comment
Это вывод python2. - person bgusach; 07.11.2014