KY129 简单计算器
import sys
for line in sys.stdin:
if line.strip() == '0':
break
else:
result = "{0:.2f}".format(eval(line.strip()))
print(result)
import sys
priority = {'+' : 0, "-" : 0, "*" : 1, "/" : 1}
def printEvaluation(line):
line = line.split(' ')
opStack, numStack = list(), list()
for c in line:
if c not in priority:
numStack.append(c)
else:
if len(opStack)==0:
opStack.append(c)
elif priority[opStack[-1]]>=priority[c]:
lastOp = opStack.pop()
b = numStack.pop()
a = numStack.pop()
res = str(eval(a+lastOp+b))
numStack.append(res)
if len(opStack)==0:
opStack.append(c)
elif priority[opStack[-1]]>=priority[c]:
lastOp = opStack.pop()
b = numStack.pop()
a = numStack.pop()
res = str(eval(a+lastOp+b))
numStack.append(res)
opStack.append(c)
else:
opStack.append(c)
else:
opStack.append(c)
while len(opStack)!=0:
lastOp = opStack.pop()
b = numStack.pop()
a = numStack.pop()
res = str(eval(a+lastOp+b))
numStack.append(res)
print("{0:.2f}".format(eval(numStack.pop())))
for line in sys.stdin:
line = line.strip()
if line == '0':
break
else:
printEvaluation(line)