Как убрать ошибку если пользователь вводит не тот тип данных

Рейтинг: 0Ответов: 2Опубликовано: 21.01.2023

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

while 1:

what = input('Укажите действие: (+, -, *, /): ')

a = float(input('Первое число: '))
b = float(input('Второе число: '))

if what == '+': c = a + b
elif what == '-': c = a - b
elif what == '*': c = a * b
elif what == '/' and b != 0: c = a / b
elif what == '/' and b == 0:
    print('На ноль делить нельзя')
    continue
else:
    print('Что так сложно следовать инструкциям?')
    continue
print('Ответ: ', c)

Ответы

▲ 1Принят

Почитайте про конструкции try-except. Вот решение:

what = input('Укажите действие: (+, -, *, /): ')
try:
    a = float(input('Первое число: '))
    b = float(input('Второе число: '))
except ValueError:
    print('Введен неверный тип данных')
    continue
if what == '+': c = a + b
elif what == '-': c = a - b
elif what == '*': c = a * b
elif what == '/' and b != 0: c = a / b
elif what == '/' and b == 0:
    print('На ноль делить нельзя')
    continue
else:
    print('Что так сложно следовать инструкциям?')
    continue
print('Ответ: ', c)
▲ 2

Используйте функцию проверки экземпляра на принадлежность классу:

if not isinstance(a, float):
    # ветка если введенное число не типа float
    # обработка неверного ввода
else:
    # когда введенное число типа float