lite_tutor_english.py 5.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import random
  2. verb_dict = {'ask': ('спрашивать', 'просить'), 'become': 'становиться', 'begin':
  3. 'начинать', 'call': ('кричать', 'звать', 'звонить'), 'can':
  4. ('мочь', 'быть в состоянии'), 'come':
  5. ('приходить', 'приезжать', 'заходить'), 'could': 'можете', 'do':
  6. ('делать', 'выполнять', 'создавать'), 'feel':
  7. ('чувствовать', 'считать'), 'find':
  8. ('находить', 'встречать', 'обнаруживать', 'заставать', 'считать', 'полагать', 'признавать'),
  9. 'get':
  10. ('получить', 'купить',
  11. 'понять', 'добраться'),
  12. 'give': ('давать', 'дарить'),
  13. 'go':
  14. ('идти', 'ехать'), 'have':
  15. ('иметь', 'быть вынужденным'), 'hear':
  16. ('слышать', 'слушать'),
  17. 'help': 'помогать',
  18. 'keep': ('держать', 'хранить', 'продолжать'), 'know':
  19. ('знать', 'понимать'), 'leave': ('оставлять', 'покидать', 'уезжать'), 'let':
  20. ('разрешать', 'позволять'), 'like':
  21. ('любить', 'нравиться'), 'live':
  22. ('жить', 'обитать'),
  23. 'look':
  24. ('смотреть', 'осматривать', 'выглядеть', 'казаться'), 'make': ('делать', 'создавать',
  25. 'готовить'), 'may': ('возможно',
  26. 'можно'), 'mean':
  27. ('иметь в виду', 'подразумевать', 'значить',
  28. 'намереваться', 'хотеть что-либо сделать'), 'might':
  29. ('мог бы', 'может', 'можно ли'), 'move': ('двигать', 'двигаться', 'переезжать'),
  30. 'need':
  31. ('нуждаться', 'иметь необходимость'), 'play': 'играть',
  32. 'put':
  33. ('класть', 'ставить', 'помещать'),
  34. 'run':
  35. ('бежать', 'бегать', 'управлять'),
  36. 'say': ('говорить', 'сказать'), 'see': ('видеть', 'смотреть', 'понимать', 'встречать', 'посещать'),
  37. 'seem': 'казаться',
  38. 'should':
  39. ('следует', 'должен быть'), 'show': 'показывать', 'start': 'начинать',
  40. 'take':
  41. ('брать', 'принимать',
  42. 'вмещать', 'требоваться'), 'talk': ('разговаривать', 'говорить', 'вести беседу'), 'tell':
  43. ('говорить', 'рассказывать', 'сообщать'),
  44. 'think': 'думать', 'try': 'пытаться, пробовать',
  45. 'turn':
  46. ('вращать', 'поворачивать', 'вывихивать', 'исполниться'), 'use': ('использовать', 'употреблять'), 'want':
  47. ('хотеть', 'желать', 'нуждаться'), 'work': 'работать', 'will':
  48. ('велеть', 'желать'), 'would': ('не могли бы', 'не желаете ли')}
  49. len_all = len(verb_dict) # считаем, сколько слов в словаре
  50. print(f'Всего в словаре {len_all} слов')
  51. user_input = input('Введите слово или фразу на английском, которые хотите перевести, или цифры, чтобы сгенерировать случайную фразу\n')
  52. check_type = user_input.isdigit()
  53. # проверка на тип данных в вводе
  54. if check_type == False:
  55. user_input = user_input.lower().split()
  56. else:
  57. user_input = int(user_input)
  58. # выводит перевод слов по отдельности, если нет в словаре пишет '?'
  59. def fn_translate(user_input):
  60. count_not_dict = 0 # счетчик ненайденных слов
  61. count_dict = 0 # счетчик слов, найденных в словаре
  62. for element in user_input:
  63. if element in verb_dict:
  64. print(element, verb_dict[element])
  65. count_dict += 1
  66. elif element not in verb_dict:
  67. print(element, "?")
  68. count_not_dict += 1
  69. count_all_dict = count_dict + count_not_dict # всего слов ввел пользователь
  70. percent_dict = (count_dict / count_all_dict) * 100 # процент переведенных слов
  71. # статистика по переводу
  72. print(f'Всего использовано {count_all_dict} слов\nУдалось перевести {count_dict} слов\nНе удалось найти {count_not_dict} слов\nПереведено {percent_dict} процентов текста')
  73. # вывод случайных слов из словаря, сколько захочет пользователь
  74. def fn_random_word(user_input):
  75. if user_input > 50:
  76. print("Слишком большое число, придумаем 50 слов")
  77. user_input = 50
  78. while user_input > 0:
  79. en_random = random.choice(list(verb_dict.keys()))
  80. print(en_random)
  81. user_input -= 1
  82. if check_type == True:
  83. fn_random_word(user_input)
  84. else:
  85. fn_translate(user_input)