Dette eksemplet bygger videre på rpncalc1 og viser hvordan en kan bruke funksjoner for å gjøre et program ryddigere.
# 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")