Top.Mail.Ru
Ответы

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)
Помогите решить проблему, пожалуйста

По дате
По рейтингу
Аватар пользователя
Оракул
6лет

Уж сколько раз твердили миру: "Не покупайте книг по программированию!"

1. В них полным-полно "очепяток", так как напечатанный код никто толком не проверяет.
2. Задолбаешься перепечатывать эти тексты, к тому же, допуская собственные "очепятки"...

По идее, эта "мега-программа" должна была бы выглядеть как-то так:

script, first, second, third = 'argv','first', '2nd', '3rd'
print("Этот сценарий называется:", script)
print("Моя первая переменная называется:", first)
print("Моя вторая переменная называется:", second)
print("Моя третья переменная называется:", third)

Но называть переменные 2nd или 3nd - НЕЛЬЗЯ! Имя переменной не должно начинаться с цифры!

Вывод - книга очередная полная туфта, которая ничему хорошему не научит...

Аватар пользователя
Ученик
5лет

Ваш вывод по поводу книги - ошибочный! Автор специально совершал ошибки дабы развить внимательность у читателей (об этом говорится в самом начале!) Данную программу необходимо запускать через командную строку не забыв перечислить аргументы.

Аватар пользователя
Ученик

argv это аргументы. Например в CMD набираешь "file.py 1 2 3 4", будет 4 аргумента, первый "1", второй "2" и так далее. Аргументы всегда типа string.

Аватар пользователя
Мыслитель
6лет

script, first, second, third = argv - что это такое вообще?

From sys import argv - и что вообще за argv? Я читал в документации, но это навскидку какая-то малонужная хреновина

UPD. Разгадка из книги

Аватар пользователя
Ученик
6лет

Не знаю) В книге был написан такой код, сказали переписать. Потом были строки расписаны.

Аватар пользователя
Мудрец
6лет

"Хреновина" самая обычная, стандартная. Иногда она необходима.

Аватар пользователя
Ученик

ААХАХАХАХХ! Ребят, argv это аргументы. Например в CMD набираешь "file.py 1 2 3 4", будет 4 аргумента, первый "1", второй "2" и так далее. Аргументы всегда типа string.

Аватар пользователя
Мудрец
6лет

Чего ты ожидал от этой строки?
script, first, second, third = argv

В программе нет ошибок. Но она требует аргументов командной строки (3 шт). Поскольку их нет, то получается ошибка.

Аватар пользователя
Ученик
6лет

Не знаю) В книге был написан такой код, сказали переписать. Потом были строки расписаны.



Видео по теме