Advertisement
ForestFox

Untitled

Nov 17th, 2021
835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.25 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. try:
  101.     print(digit_rev[calc()])
  102. except:
  103.     print(calc())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement