TypeError простыми словами
TypeError возникает, когда над данными делают то, что для их типа не подходит — например, складывают число с текстом.
Что означает
У каждого значения есть тип: число, строка (текст), список и другие. TypeError значит, что операция не подходит этим типам. Классика — попытка сложить число и строку: Python не знает, сложить их как числа или склеить как текст.
age = input('Возраст: ') # input даёт строку!
print(age + 1) # TypeError
print(int(age) + 1) # правильно: перевели в число
Частые причины
Данные из input() — это всегда строка, и их надо перевести в число через int() или float(). Ещё причины: вызвали как функцию то, что функцией не является, или передали не тот тип аргумента.
Как исправить
Прочитайте, какие типы столкнулись (в сообщении есть 'int' и 'str' и т.п.). Приведите данные к нужному типу: int() — в целое число, str() — в текст, float() — в дробное. Проверяйте тип функцией type(), если сомневаетесь.
Частые вопросы
Почему input всегда строка? Так задумано; переводите в число через int()/float() при необходимости.
Как узнать тип значения? Напечатайте type(значение) — Python покажет его тип.
Начать игру бесплатно