Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __author__ = 'pranav.ambhore'
- expr = raw_input("Enter a valid expression")
- operators = ['+', '-', '*', '/']
- expr_list = ['']
- operator_list = []
- expr = expr.replace(' ', '')
- i = 0
- for ch in expr:
- if ch in operators:
- expr_list.append(ch)
- i += 1
- expr_list.append('')
- i += 1
- else:
- expr_list[i] += ch
- print expr_list
- post_expr_list = []
- i = 0
- for item in expr_list:
- if item not in operators:
- post_expr_list.append(item)
- i += 1
- elif item in ['+', '-']:
- operator_list.append(item)
- i += 1
- else:
- i += 1
- post_expr_list.append(expr_list[i])
- del expr_list[i]
- post_expr_list.append(item)
- post_expr_list.extend(list(reversed(operator_list)))
- print post_expr_list
- operand_list = []
- operator_list = []
- for item in post_expr_list:
- if item not in operators:
- operand_list.append(item)
- else:
- opr1 = int(operand_list.pop())
- opr2 = int(operand_list.pop())
- if item == '+':
- operand_list.append(opr1 + opr2)
- if item == '-':
- operand_list.append(opr2 - opr1)
- if item == '*':
- operand_list.append(opr1 * opr2)
- if item == '/':
- operand_list.append(opr2 / opr1)
- print(operand_list)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement