Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import *
- inp = input().split()
- stack = []
- s = ''
- for i in inp:
- if i == '+':
- if len(stack) < 2:
- s = 'ERROR'
- break
- else:
- stack.append(stack.pop(-1) + stack.pop(-1))
- elif i == '-':
- if len(stack) < 2:
- s = 'ERROR'
- break
- else:
- stack.append(-stack.pop(-1) + stack.pop(-1))
- elif i == '*':
- if len(stack) < 2:
- s = 'ERROR'
- break
- else:
- stack.append(stack.pop(-1) * stack.pop(-1))
- elif i == '/':
- if len(stack) < 2:
- s = 'ERROR'
- break
- else:
- stack.append(1 / stack.pop(-1) * stack.pop(-1))
- elif i == 'abs':
- if len(stack) == 0:
- s = 'ERROR'
- break
- else:
- stack.append(abs(stack.pop(-1)))
- elif i == 'sin':
- if len(stack) == 0:
- s = 'ERROR'
- break
- else:
- stack.append(sin(stack.pop(-1)))
- elif i == 'cos':
- if len(stack) == 0:
- s = 'ERROR'
- break
- else:
- stack.append(cos(stack.pop(-1)))
- elif i == 'sqrt':
- if len(stack) == 0:
- s = 'ERROR'
- break
- else:
- stack.append(sqrt(stack.pop(-1)))
- else:
- stack.append(int(i))
- #print(stack)
- if len(stack) != 1:
- s = 'ERROR'
- if s != 'ERROR':
- s = '{0:.3f}'.format(stack[0])
- print(s)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement