Выдает такую ошибку: ValueError: not enough values to unpack (expected 2, got 0)

Я только начал изучать программирование и вот тут такая проблема, начал решать задачи в acmp, вроде все идет норм но когда хочу посмотреть как это работает не в сайте, а в самом IDLE то ничего не выходить кроме этой проблемы: ValueError: not enough values to unpack (expected 2, got 0) сам код:

fin  = open("input.txt")
fout = open("output.txt","w")

a,b = map(int, fin.readline().split())
fout.write(str(a+b))

fin.close()
fout.close()

хз почему не работает. В файле Input.txt находить 4 и 5. Помогите школьнику


Ответы (2 шт):

Автор решения: Zhihar
a,b = map(int, fin.readline().split())

зависит от того, что содержится в строке, которая извлекается чрез fin.readline()

например, если в строке только 1 число или вообще нет чисел, тогда будет ошибка, потому что ничего не может быть записано в переменную b или в обе переменные a, b соответственно

a, b = map(int, "".split()) # ошибка ValueError: not enough values to unpack (expected 2, got 0)
a, b = map(int, "10".split()) # ошибка ValueError: not enough values to unpack (expected 2, got 1)
a, b = map(int, "10 20".split()) # OK, все корректно
a, b = map(int, "10 20 30".split()) # ошибка ValueError: too many values to unpack (expected 2)

как выход - лучше считывать информацию в список и потом уже работать с ней в зависимости от размера списка

data = list(int, fin.readline().split())
→ Ссылка
Автор решения: Аянат Абилдинов

короче люди я бебра

у меня этот код просто так начал работать, хотя я его не менял ничего, и вот работает, но все равно спасибо @Zhihar, благодаря ему я узнал что такое лист в питоне и я его изучил и написал код который немного был написан как говорил Zhirar. code:

fin  = open("input.txt")
fout = open("output.txt","w")

data = fin.readline()## Заголовок ##
fout.write(str(int(data.split()[0]) + int(data.split()[1])))
fin.close()
fout.close()

`

→ Ссылка