fork download
  1. import sys
  2.  
  3. class FairyTaleApp:
  4. def __init__(self):
  5. self.tales = [
  6. {"title": "Колобок", "text": "Жили-были старик со старухой. Попросил старик старуху испечь колобок. По амбару помела, по сусекам поскребла - наскребла муки. Испекла колобок и положила на окошко остывать. Колобок покатился по дорожке и встретил Зайца, Волка, Медведя и Лису. Лиса его и съела.", "characters": ["Колобок", "Дед", "Баба", "Заяц", "Волк", "Медведь", "Лиса"]},
  7. {"title": "Репка", "text": "Посадил дед репку. Выросла репка большая-пребольшая. Стал дед репку тянуть: тянет-потянет, вытянуть не может. Позвал дед бабку. Бабка за дедку, дедка за репку - тянут-потянут, вытянуть не могут. Позвала бабка внучку. Внучка за бабку, бабка за дедку, дедка за репку - тянут-потянут, вытянуть не могут. И так далее, пока мышка не помогла.", "characters": ["Дед", "Бабка", "Внучка", "Жучка", "Кошка", "Мышка"]},
  8. {"title": "Теремок", "text": "Стоял в поле теремок. Бежала мимо мышка-норушка. Увидела теремок и стала в нем жить. Прискакала лягушка-квакушка, попросилась жить. Согласилась мышка. Прибежал зайчик-попрыгайчик, тоже попросился. Пустили его. Пришла лисичка-сестричка, потом волчок-серый бочок. Все жили дружно. Пришел медведь косолапый и раздавил теремок. Все звери разбежались.", "characters": ["Мышка", "Лягушка", "Зайчик", "Лисичка", "Волчок", "Медведь"]},
  9. {"title": "Курочка Ряба", "text": "Жили-были дед да баба. Была у них курочка Ряба. Снесла курочка яичко, да не простое, а золотое. Дед бил - не разбил. Баба била - не разбила. Мышка бежала, хвостиком махнула, яичко упало и разбилось. Дед плачет, баба плачет, а курочка говорит: 'Не плачь, дед, не плачь, баба, снесу я вам новое яичко, не золотое, а простое.'", "characters": ["Дед", "Баба", "Курочка Ряба", "Мышка"]},
  10. {"title": "Маша и медведь", "text": "Ушла Маша в лес с подружками за грибами и ягодами. Заблудилась и набрела на избушку. В избушке жил медведь. Не отпускал он Машу домой. Заставил ее работать. Придумала Маша хитрость: попросилась отнести пирожки бабушке с дедушкой. Села в короб, а на медведя сверху пирожки. Медведь понес короб, а Маша говорит: 'Не садись на пенек, не ешь пирожок!' Донес медведь Машу до дома, а она выскочила и убежала.", "characters": ["Маша", "Медведь", "Бабушка", "Дедушка", "Подружки"]},
  11. {"title": "Гуси-лебеди", "text": "Родители ушли на работу, оставили дочку братца стеречь. Прилетели гуси-лебеди, унесли братца. Отправилась девочка его искать. Встретила печку, яблоню, речку. Помогли ей найти избушку Бабы-Яги. Выкрала братца и убежала. Гуси-лебеди погнались за ними. С помощью тех же помощников спряталась и вернулась домой как раз к приходу родителей.", "characters": ["Девочка", "Братец", "Гуси-лебеди", "Баба-Яга", "Печка", "Яблоня", "Речка"]},
  12. {"title": "Сестрица Аленушка и братец Иванушка", "text": "Жили-были сестрица Аленушка и братец Иванушка. Остались они сиротами. Пошли они в лес, захотел Иванушка пить из козьего копытца. Не послушался сестры и стал козленочком. Забрала Аленушку в жены купец. Ведьма утопила Аленушку в реке, а сама прикинулась ею. Козленочек все рассказал купцу. Освободили Аленушку, а ведьму наказали. Стал Иванушка снова мальчиком.", "characters": ["Аленушка", "Иванушка", "Купец", "Ведьма", "Козленочек"]}
  13. ]
  14.  
  15. def display_menu(self):
  16. print("=" * 50)
  17. print("РУССКИЕ НАРОДНЫЕ СКАЗКИ")
  18. print("=" * 50)
  19. print("\nСписок сказок:")
  20. for i, tale in enumerate(self.tales, 1):
  21. print(f"{i}. {tale['title']}")
  22.  
  23. def display_tale(self, index):
  24. if 0 <= index < len(self.tales):
  25. tale = self.tales[index]
  26. print("\n" + "=" * 50)
  27. print(f"СКАЗКА: {tale['title']}")
  28. print("=" * 50)
  29. print("\nПЕРСОНАЖИ:")
  30. for char in tale["characters"]:
  31. print(f" • {char}")
  32. print(f"\nТЕКСТ СКАЗКИ:\n{tale['text']}")
  33. print("\n" + "-" * 50)
  34. print(f"Длина текста: {len(tale['text'])} символов")
  35. print(f"Количество персонажей: {len(tale['characters'])}")
  36. print("=" * 50)
  37. else:
  38. print("Ошибка: неверный номер сказки!")
  39.  
  40. def show_stats(self):
  41. total_tales = len(self.tales)
  42. total_chars = sum(len(tale['characters']) for tale in self.tales)
  43. total_text = sum(len(tale['text']) for tale in self.tales)
  44.  
  45. print("\n" + "=" * 50)
  46. print("СТАТИСТИКА")
  47. print("=" * 50)
  48. print(f"Всего сказок в базе: {total_tales}")
  49. print(f"Всего персонажей: {total_chars}")
  50. print(f"Среднее количество персонажей: {total_chars/total_tales:.1f}")
  51. print(f"Общий объем текста: {total_text} символов")
  52. print(f"Средняя длина текста: {total_text/total_tales:.0f} символов")
  53. print("=" * 50)
  54.  
  55. def show_info(self, index):
  56. if 0 <= index < len(self.tales):
  57. tale = self.tales[index]
  58. print("\n" + "=" * 50)
  59. print(f"ИНФОРМАЦИЯ О СКАЗКЕ")
  60. print("=" * 50)
  61. print(f"Название: {tale['title']}")
  62. print(f"Количество персонажей: {len(tale['characters'])}")
  63. print(f"Длина текста: {len(tale['text'])} символов")
  64. print(f"Первые 100 символов текста:\n{tale['text'][:100]}...")
  65. print("=" * 50)
  66. else:
  67. print("Ошибка: неверный номер сказки!")
  68.  
  69. def run(self):
  70. try:
  71. print("Добро пожаловать в программу 'Русские народные сказки'!")
  72. print("Программа работает в консольном режиме.")
  73. print("=" * 50)
  74.  
  75. # Автоматический показ всех сказок и статистики
  76. self.display_menu()
  77. print("\n" + "=" * 50)
  78. print("АВТОМАТИЧЕСКИЙ ПОКАЗ ВСЕХ СКАЗОК")
  79. print("=" * 50)
  80.  
  81. for i in range(len(self.tales)):
  82. self.display_tale(i)
  83. if i < len(self.tales) - 1:
  84. print("\n" + "-" * 50)
  85. print("СЛЕДУЮЩАЯ СКАЗКА:")
  86. print("-" * 50)
  87.  
  88. print("\n" + "=" * 50)
  89. self.show_stats()
  90.  
  91. print("\n" + "=" * 50)
  92. print("ПРОГРАММА ЗАВЕРШИЛА РАБОТУ")
  93. print("=" * 50)
  94.  
  95. except Exception as e:
  96. print(f"\nПроизошла ошибка: {e}")
  97.  
  98. def main():
  99. app = FairyTaleApp()
  100. app.run()
  101. if __name__ == "__main__":
  102. main()
Success #stdin #stdout 0.13s 14096KB
stdin
Standard input is empty
stdout
Добро пожаловать в программу 'Русские народные сказки'!
Программа работает в консольном режиме.
==================================================
==================================================
РУССКИЕ НАРОДНЫЕ СКАЗКИ
==================================================

Список сказок:
1. Колобок
2. Репка
3. Теремок
4. Курочка Ряба
5. Маша и медведь
6. Гуси-лебеди
7. Сестрица Аленушка и братец Иванушка

==================================================
АВТОМАТИЧЕСКИЙ ПОКАЗ ВСЕХ СКАЗОК
==================================================

==================================================
СКАЗКА: Колобок
==================================================

ПЕРСОНАЖИ:
  • Колобок
  • Дед
  • Баба
  • Заяц
  • Волк
  • Медведь
  • Лиса

ТЕКСТ СКАЗКИ:
Жили-были старик со старухой. Попросил старик старуху испечь колобок. По амбару помела, по сусекам поскребла - наскребла муки. Испекла колобок и положила на окошко остывать. Колобок покатился по дорожке и встретил Зайца, Волка, Медведя и Лису. Лиса его и съела.

--------------------------------------------------
Длина текста: 261 символов
Количество персонажей: 7
==================================================

--------------------------------------------------
СЛЕДУЮЩАЯ СКАЗКА:
--------------------------------------------------

==================================================
СКАЗКА: Репка
==================================================

ПЕРСОНАЖИ:
  • Дед
  • Бабка
  • Внучка
  • Жучка
  • Кошка
  • Мышка

ТЕКСТ СКАЗКИ:
Посадил дед репку. Выросла репка большая-пребольшая. Стал дед репку тянуть: тянет-потянет, вытянуть не может. Позвал дед бабку. Бабка за дедку, дедка за репку - тянут-потянут, вытянуть не могут. Позвала бабка внучку. Внучка за бабку, бабка за дедку, дедка за репку - тянут-потянут, вытянуть не могут. И так далее, пока мышка не помогла.

--------------------------------------------------
Длина текста: 336 символов
Количество персонажей: 6
==================================================

--------------------------------------------------
СЛЕДУЮЩАЯ СКАЗКА:
--------------------------------------------------

==================================================
СКАЗКА: Теремок
==================================================

ПЕРСОНАЖИ:
  • Мышка
  • Лягушка
  • Зайчик
  • Лисичка
  • Волчок
  • Медведь

ТЕКСТ СКАЗКИ:
Стоял в поле теремок. Бежала мимо мышка-норушка. Увидела теремок и стала в нем жить. Прискакала лягушка-квакушка, попросилась жить. Согласилась мышка. Прибежал зайчик-попрыгайчик, тоже попросился. Пустили его. Пришла лисичка-сестричка, потом волчок-серый бочок. Все жили дружно. Пришел медведь косолапый и раздавил теремок. Все звери разбежались.

--------------------------------------------------
Длина текста: 346 символов
Количество персонажей: 6
==================================================

--------------------------------------------------
СЛЕДУЮЩАЯ СКАЗКА:
--------------------------------------------------

==================================================
СКАЗКА: Курочка Ряба
==================================================

ПЕРСОНАЖИ:
  • Дед
  • Баба
  • Курочка Ряба
  • Мышка

ТЕКСТ СКАЗКИ:
Жили-были дед да баба. Была у них курочка Ряба. Снесла курочка яичко, да не простое, а золотое. Дед бил - не разбил. Баба била - не разбила. Мышка бежала, хвостиком махнула, яичко упало и разбилось. Дед плачет, баба плачет, а курочка говорит: 'Не плачь, дед, не плачь, баба, снесу я вам новое яичко, не золотое, а простое.'

--------------------------------------------------
Длина текста: 323 символов
Количество персонажей: 4
==================================================

--------------------------------------------------
СЛЕДУЮЩАЯ СКАЗКА:
--------------------------------------------------

==================================================
СКАЗКА: Маша и медведь
==================================================

ПЕРСОНАЖИ:
  • Маша
  • Медведь
  • Бабушка
  • Дедушка
  • Подружки

ТЕКСТ СКАЗКИ:
Ушла Маша в лес с подружками за грибами и ягодами. Заблудилась и набрела на избушку. В избушке жил медведь. Не отпускал он Машу домой. Заставил ее работать. Придумала Маша хитрость: попросилась отнести пирожки бабушке с дедушкой. Села в короб, а на медведя сверху пирожки. Медведь понес короб, а Маша говорит: 'Не садись на пенек, не ешь пирожок!' Донес медведь Машу до дома, а она выскочила и убежала.

--------------------------------------------------
Длина текста: 402 символов
Количество персонажей: 5
==================================================

--------------------------------------------------
СЛЕДУЮЩАЯ СКАЗКА:
--------------------------------------------------

==================================================
СКАЗКА: Гуси-лебеди
==================================================

ПЕРСОНАЖИ:
  • Девочка
  • Братец
  • Гуси-лебеди
  • Баба-Яга
  • Печка
  • Яблоня
  • Речка

ТЕКСТ СКАЗКИ:
Родители ушли на работу, оставили дочку братца стеречь. Прилетели гуси-лебеди, унесли братца. Отправилась девочка его искать. Встретила печку, яблоню, речку. Помогли ей найти избушку Бабы-Яги. Выкрала братца и убежала. Гуси-лебеди погнались за ними. С помощью тех же помощников спряталась и вернулась домой как раз к приходу родителей.

--------------------------------------------------
Длина текста: 335 символов
Количество персонажей: 7
==================================================

--------------------------------------------------
СЛЕДУЮЩАЯ СКАЗКА:
--------------------------------------------------

==================================================
СКАЗКА: Сестрица Аленушка и братец Иванушка
==================================================

ПЕРСОНАЖИ:
  • Аленушка
  • Иванушка
  • Купец
  • Ведьма
  • Козленочек

ТЕКСТ СКАЗКИ:
Жили-были сестрица Аленушка и братец Иванушка. Остались они сиротами. Пошли они в лес, захотел Иванушка пить из козьего копытца. Не послушался сестры и стал козленочком. Забрала Аленушку в жены купец. Ведьма утопила Аленушку в реке, а сама прикинулась ею. Козленочек все рассказал купцу. Освободили Аленушку, а ведьму наказали. Стал Иванушка снова мальчиком.

--------------------------------------------------
Длина текста: 358 символов
Количество персонажей: 5
==================================================

==================================================

==================================================
СТАТИСТИКА
==================================================
Всего сказок в базе: 7
Всего персонажей: 40
Среднее количество персонажей: 5.7
Общий объем текста: 2361 символов
Средняя длина текста: 337 символов
==================================================

==================================================
ПРОГРАММА ЗАВЕРШИЛА РАБОТУ
==================================================