Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import operator
- import re
- int()
- rpn = "23.55 sda 32 +"
- stack = []
- calc_magic_dict = {
- "+": lambda x, y: operator.add(x, y),
- "-": lambda x, y: operator.sub(x, y),
- "*": lambda x, y: operator.mul(x, y),
- "/": lambda x, y: operator.truediv(x, y),
- "^": lambda x, y: operator.truediv(x, y)
- }
- def calc_magic(opr, x, y):
- return calc_magic_dict[opr](float(x), float(y))
- for part in rpn.split():
- if part in calc_magic_dict:
- y, x = stack.pop(), stack.pop()
- stack.append(calc_magic(part, x, y))
- else:
- part_numbers = re.sub("[^0-9.]", "", part)
- part_dot_index = part_numbers.find(".")+1
- part_formatted = part_numbers[:part_dot_index]+part_numbers[part_dot_index:].replace(".", "")
- if len(part_formatted) > 0:
- stack.append(part_formatted)
- print(stack)
Advertisement
Add Comment
Please, Sign In to add comment