Advertisement
ForestFox

Untitled

Nov 17th, 2021
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. def calc(mat_example=str(input('Введите значение: ')).split(' ')):
  2. ls = list(mat_example)
  3.  
  4. del1 = ''.join(ls)
  5.  
  6. try:
  7. delete = del1.find('на')
  8. if delete != 0:
  9. ls.remove('на')
  10. except:
  11. pass
  12.  
  13. try:
  14. delete1 = del1.find('в')
  15. if delete1 != 0:
  16. ls.remove('в')
  17. except:
  18. pass
  19.  
  20. count = len(ls)
  21.  
  22. for i in range(0, count):
  23. ls[i] = digit.get(ls[i])
  24.  
  25. if count == 3:
  26. if ls[1] == '+':
  27. answer = ls[0] + ls[2]
  28. elif ls[1] == '-':
  29. answer = ls[0] - ls[2]
  30. elif ls[1] == '*':
  31. answer = ls[0] * ls[2]
  32. elif ls[1] == '/':
  33. answer = ls[0] / ls[2]
  34. elif ls[1] == '**':
  35. answer = ls[0] ** ls[2]
  36.  
  37.  
  38. elif count == 5:
  39. y1 = ls[0] + ls[1]
  40. y2 = ls[3] + ls[4]
  41. if ls[2] == '+':
  42. answer = y1 + y2
  43. elif ls[2] == '-':
  44. answer = y1 - y2
  45. elif ls[2] == '*':
  46. answer = y1 * y2
  47. elif ls[2] == '/':
  48. answer = y1 / y2
  49. elif ls[2] == '**':
  50. answer = y1 ** y2
  51.  
  52. elif count == 4:
  53. if ls[1] == '+' or ls[1] == '-' or ls[1] == '*':
  54. y2 = ls[2] + ls[3]
  55. if ls[1] == '+':
  56. answer = ls[0] + y2
  57. elif ls[1] == '-':
  58. answer = ls[0] - y2
  59. elif ls[1] == '*':
  60. answer = ls[0] * y2
  61. elif ls[2] == '/':
  62. answer = ls[0] / y2
  63. elif ls[2] == '**':
  64. answer = ls[0] ** y2
  65. elif ls[2] == '+' or ls[2] == '-' or ls[2] == '*':
  66. y1 = ls[0] + ls[1]
  67. if ls[1] == '+':
  68. answer = y1 + ls[3]
  69. elif ls[1] == '-':
  70. answer = y1 - ls[3]
  71. elif ls[1] == '*':
  72. answer = ls[3] * y1
  73. elif ls[1] == '/':
  74. answer = y1 / ls[3]
  75. elif ls[1] == '**':
  76. answer = y1 ** ls[3]
  77.  
  78. return round(answer, 3)
  79. def get_key(d, value):
  80. for k, v in d.items():
  81. if v == value:
  82. return k
  83. digit = {"один": 1, "два": 2, "три": 3, "четыре": 4, "пять": 5, "шесть": 6, "семь": 7, "восемь": 8, "девять": 9, \
  84. "одиннадцать": 11, "двенадцать": 12, "тринадцать": 13, "четырнадцать": 14, "пятнадцать": 15, "шестнадцать": 16,
  85. "семнадцать": 17, "восемнадцать": 18, "девятнадцать": 19, \
  86. "десять": 10, "двадцать": 20, "тридцать": 30, "сорок": 40, "пятьдесят": 50, "шестьдесят": 60, "семьдесят": 70,
  87. "восемьдесят": 80, "девяносто": 90, \
  88. 'плюс': '+', 'минус': '-', 'умножить': '*', 'делить': '/', 'степени': '**'}
  89.  
  90. digit_rev = {0: 'ноль', 100:'сто'}
  91.  
  92. for i in range(1, 100):
  93. g = get_key(digit, i)
  94. if g:
  95. digit_rev[i] = g
  96. else:
  97. digit_rev[i] = get_key(digit, i//10*10) + ' ' +get_key(digit, i%10)
  98.  
  99.  
  100. print(digit_rev[calc()])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement