def check_value(x):
try:
return True,float(x)
except ValueError:
print("Data Error")
return None
def check_op(op):
if op in ['*','/','+','-']:
return op
else:
print("Operator Error")
def calc(x,y,op):
if check_value(x)[0] and check_value(y)[0] and check_op(op):
x = check_value(x)[1];y = check_value(y)[1]
if op == "*":
return x*y
elif op == "+":
return x+y
elif op == "-":
return x-y
else:
if y == 0:
print("second operand can not be zero")
return None
else:
return x/y
exp = input("Please input expression with space between :\n").split()
print(exp)
while len(exp)%2 and len(exp) >= 3:
if len(exp)==3 or exp[3] in ["+","-"] or exp[1] in ['*','/']:
result = calc(exp[0],exp[2],exp[1])
exp[:3] = [result]
print(exp)
else:
result = calc(exp[2],exp[4],exp[3])
exp[2:5] = [result]
print(exp)
else:
if (len(exp)%2==0):
print("wrong expression")
else:
print(exp[0])