Hi! Im new to Python and doing exercise found from internet. It is supposed to evaluate expression given with postfix operator using Stack() class.
class Stack: def __init__(self): self.items = [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def isEmpty(self): return (self.items == []) def evaluatePostfix(expr): import re tokenList = re.split(" ([^0-9])", expr) stack = Stack() for token in tokenList: if token == '' or token == ' ': continue if token == '+': sum = stack.pop() + stack.pop() stack.push(sum) elif token == '*': product = stack.pop() * stack.pop() stack.push(product) else: stack.push(int(token)) return stack.pop() print evaluatePostfix("56 47 + 2 *") Errormsg: Traceback (most recent call last): File "C:\*\postfix1.py", line 31, in <module> print evaluatePostfix("56 47 + 2 *") File "C:\*\postfix1.py", line 28, in evaluatePostfix stack.push(int(token)) ValueError: invalid literal for int() with base 10: '56 47' How can I avoid the error and get desired result? -- http://mail.python.org/mailman/listinfo/python-list