You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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")
  • No labels