← Все вопросы

TypeError: unsupported operand type(s) for +: 'int' and 'str' — как понять и починить?

Задан 16 месяцев назад843 просмотров3 ответа
12
age = 15
print("Возраст: " + age)

или наоборот total = count + input() — и вылетает unsupported operand type(s) for +: 'int' and 'str'. В чём суть?

3 ответа

24
✓ Принятый ответ — помог автору

Python не складывает число и строку молча. + для двух чисел — это сложение, для двух строк — склейка, а вот «число + строка» неоднозначно, поэтому ошибка.

Решите, что вам нужно:

  1. Склеить как текст → приведите число к строке:
print("Возраст: " + str(age))

или проще через f-строку: print(f"Возраст: {age}") — тут преобразование само.

  1. Сложить как числа (частый случай с input(), который всегда даёт строку) → приведите строку к числу:
total = count + int(input())

Главное — посмотреть на порядок типов в сообщении: 'int' and 'str' подсказывает, кто из операндов какой.

Данил Джалагания f-строки реально спасают от этой ошибки чаще всего. · 16 месяцев назад
7

Просто оберни число в str() если печатаешь, или int() если считаешь. Зависит от того, что хочешь получить — текст или сумму.

-2

Поставь + str(age) и всё. Питон тупой, сам не догадается.

Рустем Берикжан Питон тут как раз не тупой — он намеренно не угадывает, чтобы не было скрытых багов. · 16 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект