Вопрос задан 14.09.2026 в 07:23. Предмет Информатика. Спрашивает Дементьева Александра.

Выдаёт ошибку при написании кода (делаю формулу Брока):
Name = input("Ваше имя")
growth = input("Ваш рост")
weight = input("Ваш вес")
man = (growth-100)*1.15
woman = (growth-100)*1.15
print(Name,("ваш идеальный вес"),man,woman )

ОШИБКА: Traceback (most recent call last):
File "C:/Users/admin/PycharmProjects/Anatolii/Имя.py", line 4, in
man = (growth-100)*1.15
TypeError: unsupported operand type(s) for -: 'str' and 'int'

Перейти к ответам

Ответы на вопрос

Отвечает Түйкенова Асылай.

Ошибка возникает потому, что функция input() всегда возвращает строку. То есть значение growth у вас имеет тип str, а из строки нельзя вычесть число 100.

Нужно преобразовать введенный рост и вес в число с помощью int() или float():

Python
Name = input("Ваше имя: ")
growth = float(input("Ваш рост: "))
weight = float(input("Ваш вес: "))

man = (growth - 100) * 1.15 woman = (growth - 100) * 1.15

print(Name, "ваш идеальный вес:", man, woman)

Например, если ввести рост 180, Python первоначально получает его как строку "180". Поэтому выражение:

Python
growth - 100

фактически пытается выполнить:

Python
"180" - 100

отсюда и ошибка:

TypeError: unsupported operand type(s) for -: 'str' and 'int'

После float(input(...)) значение будет уже числом:

Python
180.0 - 100

и вычисление выполнится нормально.

Переменная weight в текущей программе вообще не используется, поэтому ее можно убрать, если она не нужна для дальнейших расчетов.

Также сейчас формулы для мужчины и женщины у вас полностью одинаковые:

Python
man = (growth - 100) * 1.15
woman = (growth - 100) * 1.15

Если вы хотели использовать разные варианты формулы Брока, коэффициенты нужно указать отдельно. Например:

Python
Name = input("Ваше имя: ")
growth = float(input("Ваш рост: "))

man = (growth - 100) * 1.15 woman = (growth - 100) * 1.10

print(Name) print("Идеальный вес для мужчины:", man, "кг") print("Идеальный вес для женщины:", woman, "кг")

Главная причина вашей ошибки — input() возвращает строку, поэтому перед математическими вычислениями введенные числа нужно преобразовывать через int() или float().

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос