Форум сайта python.su
Нужно добавить проверку на то, что пользователь ввел именно числа, а не строку/буквы. При вводе букв выдает ValueError. Не понимаю, в какое место прописывать except ValueError, тк пробовал написать в разных частях кода. После введения первого числа все работало, а если написать буквы при введении второго числа, то пишет в консоли ValueError
Вот код:
a = "Введите первое значение : " b = "Выберите действие '+', '-', '*', '/' : " c = "Введите второе значение : " r = "Результат : " e = "Ошибка : " x = "Введите 'yes', чтобы продолжить, или любую клавишу, чтобы завершить: " prodolzhit = 'yes' while prodolzhit == 'yes': a_num = int(input(a)) b_num = input(b) c_num = int(input(c)) if b_num == '+': print(r, a_num + c_num) elif b_num == '-': print(r, a_num - c_num) elif b_num == '*': print(r, a_num * c_num) elif b_num == '/': if b_num == "/": try: answer = a_num / c_num except ZeroDivisionError: print("Деление на 0 недопустимо") else: print(e) prodolzhit = input(x)
Отредактировано Alexlki (Март 20, 2023 19:00:39)
Офлайн
все что вводится в консоль при использовании встроенной функции input() преобразуется в тип str. Это происходит в том числе и с числами.
S.isdigit() Состоит ли строка из цифр
Отредактировано AD0DE412 (Март 20, 2023 19:55:47)
Офлайн
Alexlkiwhile prodolzhit == 'yes': a_num = int(input(a)) b_num = input(b) c_num = int(input(c))
while prodolzhit == 'yes': try: a_num = int(input(a)) except ValueError: print('incorrect a') continue b_num = input(b) if b_num not in '+-*/': print('incorrect b') continue try: c_num = int(input(c)) except ValueError: print('incorrect c') continue
Офлайн
Спасибо большое)
Офлайн