Вам нужно return
Когда вы return
из функции, она возвращается только к функции, которая вызвала ее. Поэтому, когда вы return
в mathematical_sum()
, значение возвращается к calculate_mathematical_expression()
, и вам нужно чтобы снова вернуться из этой функции, например так:
if operation == "+":
return mathematical_sum(num1,num2)
elif operation == "-":
return mathematical_difference(num1,num2)
elif operation == "*":
return mathematical_product(num1,num2)
elif operation == "/":
return mathematical_division(num1,num2)
else:
return operation_error(operation)
... в противном случае calculate_mathematical_expression()
возвращает None
.
operation_error()
не работает
- Используйте
and
вместо or
. В противном случае ваше состояние всегда будет True
- Возвращает логическое значение, а не
None
. Здесь ваша функция всегда возвращает None
Пример:
def operation_error(operation):
return operation != "+" and operation != "-" and operation != "*" and operation != "/"
Вам не нужно operation_error()
Поскольку у вас есть условие для каждого оператора, вам не нужна функция operation_error()
, вы можете напрямую сделать это:
else:
return None
... или даже удалите оператор else
и пусть calculate_mathematical_expression()
автоматически вернет None
при достижении его конца.