Python:Traceback Проблема:выдает Traceback (most recent call last): File...

0 голосов
104 просмотров

Python:Traceback
Проблема:выдает Traceback (most recent call last):
File "C:\Users\Eagle2002\Desktop\python\fourth.py", line 5, in
opt = h - w
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Программа ниже:

print('Контроль веса')
print('Введите ваш рост и вес')
h = input('Рост(см)->')
w = input('Вес(кг)->')
opt = h - w
if w == opt:
print('Ваш вес оптимален!')
elif w < opt:
rly = opt - w
print('Вам надо поправиться на', rly, 'кг.')
elif w > opt:
rly = w - opt
print('Вам надо похудеть на', rly, 'кг.')


Информатика (95 баллов) | 104 просмотров
0

какая у меня ошибка?

Дан 1 ответ
0 голосов
Правильный ответ

Ошибка в том, что Пайтон - язык со строгой динамической типизацией, т.е. тип переменной определяется при первом присваивании и в дальнейшем не может быть изменен.  Оператор input читает строку символов и h,w получаеют символьный тип. Вы пытаетесь над ними выполнить арифметическую операцию и получаете ошибку.
Попробуйте такую запись:
h = int(input('Рост(см)->'))
w = int(input('Вес(кг)->')
)

(142k баллов)