Уведомления

Группа в Telegram: @pythonsu

#1 Март 20, 2023 18:56:21

Alexlki
Зарегистрирован: 2023-03-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь в дописании кода

Нужно добавить проверку на то, что пользователь ввел именно числа, а не строку/буквы. При вводе букв выдает 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)

Офлайн

#2 Март 20, 2023 19:54:29

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Нужна помощь в дописании кода

все что вводится в консоль при использовании встроенной функции input() преобразуется в тип str. Это происходит в том числе и с числами.
S.isdigit() Состоит ли строка из цифр



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Март 20, 2023 19:55:47)

Офлайн

#3 Март 20, 2023 22:22:07

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

Нужна помощь в дописании кода

Alexlki
  
while 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



Офлайн

#4 Март 21, 2023 19:00:30

Alexlki
Зарегистрирован: 2023-03-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь в дописании кода

Спасибо большое)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version