Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. expression = input("Enter your numerical expression: ")
  2. expression_split = expression.split(' ')
  3.  
  4. # Convert numeric things to integers first.
  5. for item in range(len(expression_split)):
  6. try:
  7. expression_split[item] = int(expression_split[item])
  8. except ValueError:
  9. pass
  10.  
  11. while len(expression_split) > 1:
  12. position = None
  13. sign = None
  14.  
  15. # If / or * exist we pick the first available / or *
  16. for exp in range(len(expression_split)):
  17. if expression_split[exp] in ['/', '*']:
  18. position = exp
  19. sign = expression_split[exp]
  20. break
  21.  
  22. # If no / or * exist.
  23. if position is None:
  24. position = 1
  25. sign = expression_split[1] # First operator (+ or -) available.
  26.  
  27. if sign == "+":
  28. result = expression_split[position-1] + expression_split[position+1]
  29. elif sign == "-":
  30. result = expression_split[position-1] - expression_split[position+1]
  31. elif sign == "*":
  32. result = expression_split[position-1] * expression_split[position+1]
  33. elif sign == "/":
  34. result = expression_split[position-1] / expression_split[position+1]
  35. else:
  36. print("Error, invalid operator.")
  37.  
  38. expression_split = expression_split[:(position-1)] + [result] + expression_split[(position+2):]
  39.  
  40. print(expression, "=", expression_split[0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement