domints

Reverse Polish Notation in Python

Aug 31st, 2020
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. stack = []
  2.  
  3. operations = {
  4.     '+': lambda a, b: a + b,
  5.     '-': lambda a, b: a - b,
  6.     '*': lambda a, b: a * b,
  7.     '/': lambda a, b: a / b
  8. }
  9.  
  10. def calculate(a, b, sign):
  11.     return operations.get(sign)(a, b)
  12.    
  13.  
  14. def main():
  15.     data = input("Dej mnie równanie: ").split()
  16.     for item in data:
  17.         if item in operations.keys():
  18.             b = stack.pop()
  19.             a = stack.pop()
  20.             stack.append(calculate(a, b, item))
  21.         else:
  22.             try:
  23.                 stack.append(float(item))
  24.             except ValueError:
  25.                 print("Co to za guwno")
  26.                 return
  27.     print(stack.pop())
  28.  
  29. main()
Advertisement
Add Comment
Please, Sign In to add comment