Я хочу взять ответ, который был оценен после использования калькулятора, чтобы выполнить с ним больше операций, но когда я пытаюсь использовать переменную ответа в функции calc()
, он возвращает эту ошибку: TypeError: 'in <string>' requires string as left operand, not function
.
Как я могу получить его, чтобы я мог постоянно получать ответ и продолжать выполнять с ним больше операций? Кроме того, мне трудно понять, как я могу постоянно использовать этот калькулятор вместо сценария, который завершает работу после одного расчета. Как лучше всего продолжать работу до тех пор, пока я не перестану этого делать?
# Calculates basic operations
def calc(x, op, y):
if op in "+-*/":
ans = eval(str(x) + op + str(y))
return ans
# Main function that controls the text-based calculator
def console_calculator():
def user_input():
while True:
x = input('Type your first number: ')
try:
return int(x)
except ValueError:
try:
return float(x)
except ValueError:
print('Please type in a number...')
def operation_input():
while True:
operation = input('Type one of the following, "+ - * /": ')
if operation in "+-*/":
return operation
else:
print('Please type one of the following, "+ - * /"...')
answer = calc(user_input(), operation_input(), user_input())
print(answer)
print(calc(str(answer), operation_input, user_input)) # This line of code throws the error
console_calculator()