Как отследить деление на 0 в калькуляторе

Вот мой код:

a = float(input())
b = float(input())
c = input()
if c == "+":
    print(a + b)
elif c == "-":
    print(a - b)
elif c == "/":
    if b == "0":
        print("Деление на 0!")
    print(a / b)
elif c == "*":
    print(a * b)
elif c == "mod":
    if b == "0":
        print("Деление на 0!")
    print(a % b)
elif c == "pow":
    print(a ** b)
elif c == "div":
    if b == "0":
        print("Деление на 0!")
    print(a // b)

Я написал что если переменная c равняется нулю то пусть программа выведет мне, и условие в условии, но если b равняется 0 то выведи Деление на нол!, но не работает это, как это исправить?


Ответы (1 шт):

Автор решения: C9F
  1. Проблема в том, что после того, как вы прописали print с предупреждением, вы не задали никаких последующих действий, т.е. программа всё равно делит на 0.

  2. в if вы задали 0 тип string, хотя должен быть float. Уберите кавычки !

     elif c == "/":
         if b == 0:
             print("Деление на 0!")
         else:
             print(a / b)
    

a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
c = input("Введите действе: ")

if c == "+":
    print(a + b)
elif c == "-":
    print(a - b)
elif c == "/":
     if b == 0:                     # +++ вместо  `if b == "0"`:
         print("Деление на 0!")
     else:
         print(a / b)
elif c == "*":
    print(a * b)
elif c == "mod":
    if b == 0:                      # +++ вместо  `if b == "0"`:
        print("Деление на 0!")
    else:                           # +++
        print(a % b)                # ---->
elif c == "pow":
    print(a ** b)
elif c == "div":
    if b == 0:
        print("Деление на 0!")      # +++ вместо  `if b == "0"`:
    else:                           # +++        
        print(a // b)               # ---->
→ Ссылка