Advertisement
regergr

Untitled

Jan 16th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. from sys import stdin, exit as sys_exit
  2. f = open('input.txt')
  3. stack = []
  4. dict = {}
  5. a = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
  6. s = readline().split()
  7. l = 0
  8. size = 0
  9. for line in f:
  10. d[line[0]] = line[2:]
  11.  
  12. for i in s:
  13. if (s[i] in a):
  14. stack.append(int(dict[s[i]]))
  15. size += 1
  16. l += 1
  17. else:
  18. if (size > 0):
  19. if (s[i] == 'sqrt'):
  20.  
  21. p = sqrt(stack[l])
  22. stack[l] = p
  23.  
  24.  
  25. elif (s[i] == 'sin'):
  26.  
  27. p = sin(stack[l])
  28. stack[l] = p
  29.  
  30. elif (s[i] == 'cos'):
  31.  
  32. p = cos(stack[l])
  33. stack[l] = p
  34.  
  35. elif (s[i] == abs):
  36.  
  37. p = -1 * s[i]
  38. stack[l] = p
  39. else:
  40. print('ERROR')
  41. sys_exit()
  42.  
  43.  
  44. elif (size > 1):
  45. if (s[i] == '+'):
  46. p = s[l] + s[l - 1]
  47. l -= 1
  48. elif (s[i] == '-'):
  49. p = s[l] - s[l - 1]
  50. l -= 1
  51. elif (s[i] == '/'):
  52. p = s[l] / s[l-1]
  53. stack[l] = p
  54. elif (s[i] == '*'):
  55. p = s[l] * s[l-1]
  56. l -= 1
  57. size -= 1
  58. stack[l] = p
  59. else:
  60. print('ERROR')
  61. sys_exit()
  62. if (size == 1):
  63. print(stack[0])
  64. else:
  65. print('ERROR')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement