Выдает такую ошибку: 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 шт):
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()
`