Forums
New posts
Search forums
Members
Current visitors
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Forums
Archive
Archive
Python
Stack experiment
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Reply to thread
Message
[QUOTE="Terry Reedy, post: 2831947"] | 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) To see what is wrong, print tokenList. tokenList = expr.split() is probably what you want | 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? | -- | [URL]http://mail.python.org/mailman/listinfo/python-list[/URL] | [/QUOTE]
Verification
Post reply
Forums
Archive
Archive
Python
Stack experiment
Top