Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. __author__ = 'pranav.ambhore'
  2.  
  3. expr = raw_input("Enter a valid expression")
  4.  
  5. operators = ['+', '-', '*', '/']
  6.  
  7. expr_list = ['']
  8. operator_list = []
  9.  
  10. expr = expr.replace(' ', '')
  11.  
  12. i = 0
  13. for ch in expr:
  14. if ch in operators:
  15. expr_list.append(ch)
  16. i += 1
  17. expr_list.append('')
  18. i += 1
  19. else:
  20. expr_list[i] += ch
  21.  
  22. print expr_list
  23.  
  24. post_expr_list = []
  25.  
  26. i = 0
  27. for item in expr_list:
  28. if item not in operators:
  29. post_expr_list.append(item)
  30. i += 1
  31. elif item in ['+', '-']:
  32. operator_list.append(item)
  33. i += 1
  34. else:
  35. i += 1
  36. post_expr_list.append(expr_list[i])
  37. del expr_list[i]
  38. post_expr_list.append(item)
  39.  
  40. post_expr_list.extend(list(reversed(operator_list)))
  41.  
  42. print post_expr_list
  43. operand_list = []
  44. operator_list = []
  45.  
  46. for item in post_expr_list:
  47. if item not in operators:
  48. operand_list.append(item)
  49. else:
  50. opr1 = int(operand_list.pop())
  51. opr2 = int(operand_list.pop())
  52. if item == '+':
  53. operand_list.append(opr1 + opr2)
  54. if item == '-':
  55. operand_list.append(opr2 - opr1)
  56. if item == '*':
  57. operand_list.append(opr1 * opr2)
  58. if item == '/':
  59. operand_list.append(opr2 / opr1)
  60.  
  61. print(operand_list)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement