Python выдаёт ошибку: ValueError: not enough values to unpack (expected 4, got 1)
From sys import argv
script, first, second, third = argv
print("Этот сценарий называется:", script)
print("Моя первая переменная называется:", first)
print("Моя вторая переменная называется:", second)
print("Моя третья переменная называется:", third)
Когда набрал данный код в Visual Studio Code. В окне Терминала выдаёт ошибку: ValueError: not enough values to unpack (expected 4, got 1)
Помогите решить проблему, пожалуйста
Уж сколько раз твердили миру: "Не покупайте книг по программированию!"
1. В них полным-полно "очепяток", так как напечатанный код никто толком не проверяет.
2. Задолбаешься перепечатывать эти тексты, к тому же, допуская собственные "очепятки"...
По идее, эта "мега-программа" должна была бы выглядеть как-то так:
script, first, second, third = 'argv','first', '2nd', '3rd'
print("Этот сценарий называется:", script)
print("Моя первая переменная называется:", first)
print("Моя вторая переменная называется:", second)
print("Моя третья переменная называется:", third)
Но называть переменные 2nd или 3nd - НЕЛЬЗЯ! Имя переменной не должно начинаться с цифры!
Вывод - книга очередная полная туфта, которая ничему хорошему не научит...
Ваш вывод по поводу книги - ошибочный! Автор специально совершал ошибки дабы развить внимательность у читателей (об этом говорится в самом начале!) Данную программу необходимо запускать через командную строку не забыв перечислить аргументы.
argv это аргументы. Например в CMD набираешь "file.py 1 2 3 4", будет 4 аргумента, первый "1", второй "2" и так далее. Аргументы всегда типа string.
script, first, second, third = argv - что это такое вообще?
From sys import argv - и что вообще за argv? Я читал в документации, но это навскидку какая-то малонужная хреновина
UPD. Разгадка из книги
Не знаю) В книге был написан такой код, сказали переписать. Потом были строки расписаны.
"Хреновина" самая обычная, стандартная. Иногда она необходима.
ААХАХАХАХХ! Ребят, argv это аргументы. Например в CMD набираешь "file.py 1 2 3 4", будет 4 аргумента, первый "1", второй "2" и так далее. Аргументы всегда типа string.
Чего ты ожидал от этой строки?
script, first, second, third = argv
В программе нет ошибок. Но она требует аргументов командной строки (3 шт). Поскольку их нет, то получается ошибка.
Не знаю) В книге был написан такой код, сказали переписать. Потом были строки расписаны.