Программа "Простейший калькулятор"

Написать программу, которая выполняет над двумя вещественными числами одну из четырех арифметических операций (сложение, вычитание, умножение или деление). Программа должна завершаться только по желанию пользователя.

Чтобы программа самопроизвольно не завершалась, в ней надо запустить бесконечный цикл. Выход из него будем осуществлять с помощью оператора break, если пользователь вводит определенный символ вместо знака арифметической операции.

Если пользователь ввел знак, который не является ни знаком арифметической операции, ни символом-"прерывателем" работы программы, то вывести сообщение о некорректном вводе.

Если был введен один из четырех знаков операции, запросить ввод двух чисел.

В зависимости от знака операции выполнить соответствующее арифметическое действие.

Если было выбрано деление, необходимо проверить не является ли нулем второе число. Если это так, то сообщить о невозможности деления.

print("Ноль в качестве знака операции завершит работу программы")
while True:
    s = input("Знак (+,-,*,/): ")
    if s == '0': break
    if s in ('+','-','*','/'):
        x = float(input("x="))
        y = float(input("y="))
        if s == '+':
            print("%.2f" % (x+y))
        elif s == '-':
            print("%.2f" % (x-y))
        elif s == '*':
            print("%.2f" % (x*y))
        elif s == '/':
            if y != 0:
                print("%.2f" % (x/y))
            else:
                print("Деление на ноль!")
    else:
        print("Неверный знак операции!")

Пример выполнения программы:

Ноль в качестве знака операции завершит работу программы
Знак (+,-,*,/): h
Неверный знак операции!
Знак (+,-,*,/): +
x=78.456
y=23.567
102.02
Знак (+,-,*,/): -
x=3.44
y=10.25
-6.81
Знак (+,-,*,/): *
x=0.012
y=-2.15
-0.03
Знак (+,-,*,/): /
x=5 
y=0
Деление на ноль!
Знак (+,-,*,/): /
x=-2.3
y=5
-0.46
Знак (+,-,*,/): 0

Создано

Обновлено

Комментарии

Я лишь начал изучать питон и он мне чертовски нравится. Конечно вопрос для вас будет звучать смешно, ибо вы разбираетесь в этом гораздо лучше меня. Что означает "%.2f" и почему вы его ввели?

while True:
    a=input("первое число: ")
    b=input("второе число: ")
    c=input("действие: ")
    if c =='/':
        if c != 0:
            print(int(a) / int(b))
        else:
            print("Деление на ноль")
Почему ошибку выдает?что не так?

Ответ на от Артем

Потому что, когда проверяется b != 0, переменная b еще не переведена в тип int. В ней содержится строка. Например '0'. Выражение '0' != 0 истина, поэтому происходит деление на ноль и генерируется исключение ZeroDivisionError.

Вместо b != 0 попробуйте int(b) != 0.