Advertisement
simeonshopov

Expression Evaluator

Apr 27th, 2020
464
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.89 KB | None | 0 0
  1. from collections import deque
  2.  
  3.  
  4. def multiply(n: list):
  5.     result = n[0]
  6.     for x in n[1:]:
  7.         result *= x
  8.     n = [int(result)]
  9.     return n
  10.  
  11. def sums(n: list):
  12.     result = n[0]
  13.     for x in n[1:]:
  14.         result += x
  15.     n = [int(result)]
  16.     return n
  17.  
  18.  
  19. def division(n: list):
  20.     result = n[0]
  21.     for x in n[1:]:
  22.         result /= x
  23.     n = [int(result)]
  24.     return n
  25.  
  26.  
  27. def negate(n: list):
  28.     result = n[0]
  29.     for x in n[1:]:
  30.         result -= x
  31.     n = [int(result)]
  32.     return n
  33.  
  34.  
  35. OPERATORS = {
  36.     '*': multiply,
  37.     '+': sums,
  38.     '/': division,
  39.     '-': negate,
  40. }
  41.  
  42. info = deque(input().split())
  43. number = []
  44.  
  45. while info:
  46.     token = info[0]
  47.     if token not in OPERATORS.keys():
  48.         number.append(int(info.popleft()))
  49.     elif token in OPERATORS.keys():
  50.         number = OPERATORS[token](number)
  51.         info.popleft()
  52.  
  53. print(number[0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement