# rpncalc2.py
operands = []
def isOperand(token):
try:
float(token)
return True
except ValueError:
return False
def checkOperands(n):
if (len(operands) < n):
raise ValueError("Missing operands, " + str(n) + " where required")
def plus():
checkOperands(2)
operands.append(operands.pop() + operands.pop())
def minus():
checkOperands(2)
operands.append(- (operands.pop() - operands.pop()))
while (True):
print(operands)
token = raw_input(" > ")
if (isOperand(token)):
operand = float(token)
operands.append(operand)
else:
try:
if (token == "exit"):
break
elif (token == "+"):
plus()
elif (token == "-"):
minus()
except ValueError as ve:
print(ve)
print("program exited") |