Arsylk

Narkoman Reversed

Mar 21st, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. import operator
  2. import re
  3.  
  4.  
  5. int()
  6.  
  7.  
  8. rpn = "23.55 sda 32 +"
  9. stack = []
  10.  
  11. calc_magic_dict = {
  12.     "+": lambda x, y: operator.add(x, y),
  13.     "-": lambda x, y: operator.sub(x, y),
  14.     "*": lambda x, y: operator.mul(x, y),
  15.     "/": lambda x, y: operator.truediv(x, y),
  16.     "^": lambda x, y: operator.truediv(x, y)
  17. }
  18.  
  19.  
  20. def calc_magic(opr, x, y):
  21.     return calc_magic_dict[opr](float(x), float(y))
  22.  
  23.  
  24. for part in rpn.split():
  25.     if part in calc_magic_dict:
  26.         y, x = stack.pop(), stack.pop()
  27.         stack.append(calc_magic(part, x, y))
  28.     else:
  29.         part_numbers = re.sub("[^0-9.]", "", part)
  30.         part_dot_index = part_numbers.find(".")+1
  31.         part_formatted = part_numbers[:part_dot_index]+part_numbers[part_dot_index:].replace(".", "")
  32.         if len(part_formatted) > 0:
  33.             stack.append(part_formatted)
  34. print(stack)
Advertisement
Add Comment
Please, Sign In to add comment