задача, простой калькулятор python

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

Условия для этой задачи

Приложение работает с целыми и действительными числами. Приложение умеет выполнять следующие математические операции: СЛОЖЕНИЕ (+) ВЫЧИТАНИЕ(-) УМНОЖЕНИЕ () ДЕЛЕНИЯ (/) Программа принимает один операнд или один оператор за один цикл запрос-ответ. Все операции программа выполняет в порядке поступления – одну за другой. Программа выводит результат вычислений, когда получает от пользователя символ =. Приложение завершает работу после того, как выведет результат вычисления. Пользователь поочередно вводит числа и операторы. Если пользователь вводит оператор дважды подряд, он получает уведомление об ошибке и может ввести повторно. Если пользователь вводит число дважды, он получает сообщение об ошибке и может ввести повторно. Приложение корректно прорабатывает ситуацию некорректного ввода (exception). result - сюда помещаем итоговый результат operand - всегда сохраняет текущее число operator - строчный параметр, может содержать четыре значения, "+", "-", "", "/" wait_for_number - флажок, указывающий, что ожидают на вводе оператор ( operator) или операнд (operand)

result = None
operand = None
operator = None
wait_for_number = True

while True:
    if wait_for_number == True:
        try:
            operand = int(input("input digit >>> "))
             result = result + operand
            wait_for_number = False    
        except Exception:
            print("is not digit, try again")
        
    else:
        operator = input("input operator >>> ")
        if operator == "+" or operator == "-" or operator == "*" or operator == "/":
            wait_for_number = True
            result = result + operator
        elif operator == "=":
            result = eval(result)
            print(result)
            break
        else:
            print("is not '=' or '+' or '-' or '*' or '/', try again ")
             
        

Я думал сформировать строку из операндов и операторов и потом через eval делать вычисления, но получаю ошибку

TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

не могу понять как используя один операнд сделать вычисления


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