Как генерировать случайный текст на Python

Как генерировать случайный текст на Python?

Привет всем! В Телеграм пришел вопрос: как генерировать случайный текст на Python? После более подробного диалога стало понятно, что речь идет о программе, которая бы обрабатывала нечто вроде: Входная фраза вариант1|вариант2|вариант3 и создавала оригинальные предложения на базе всего этого.

Из быстрого и сырого решения в голову пришло нечто подобное:

  1. import random #подключаем библиотеку, отвечающую за работу со случайными числами
  2.  
  3. maximum = int(input('Сколько раз генерировать текст: ')) #создаем переменную, отвечающую за максимальное количество текста
  4. minimum = 1 #создали переменную, которая отвечает за минимальное значение
  5. while minimum <= maximum: #создали цикл, который работает пока минимальное значение не станет больше или равным максимальному
  6.     file = 'text_base.txt' #ввели переменную, отвечающую за имя файла (туда будем сохранять итоги работы)
  7.     text_massive = 'Привет |все!|всем!|народ!|пипл!\n Сегодня |понедельник, и это прекрасно!|вторник, и ' \
  8.                    'до пятницы осталось не так уж и много :)' #текстовая заготовка
  9.  
  10.     temp_text = text_massive.split('\n') #Создали переменную, в которую забираем все, что делится \n
  11.     final_text = []создали пустой список
  12.  
  13.     for temp in temp_text: #создали цикл, который обрабатывает весь текст в переменной
  14.         temp = temp.split('|') #идем по циклу, и берем все, что разделено |
  15.         random_number = random.randrange(1, len(temp))генерируем случайное число в диапазоне от первого элемента до максимального значения в списке
  16.         text_ok = temp[0] + temp[random_number] #получили переменную, которая состоит из первого слова в предложении + случайное в заданном диапазоне
  17.         final_text.append(text_ok) #результат работы положили в список
  18.     print(''.join(final_text)) #убрали лишние символы
  19.     final_text = str(final_text) #конвертировали в строковую переменную - что бы сохранить в список
  20.     final_text = final_text.replace('[', '').replace(']', '').replace('\'', '').replace(',', '') #убрали лишние знаки
  21.  
  22.     with open(file, 'a', encoding='utf-8') as f: #создали файл в режиме до-записи
  23.         f.write(final_text + '\n') #сохранили результат работы
  24.  
  25.     minimum = minimum + 1 #увеличили значение переменной на единицу

Собственно — код работает, но он сырой. Из основных недостатков вижу такие, как: невозможность выбора случайного текста несколько раз в одном предложении. В ближайшее время придумаю более логичную структуру работы и более функциональную.

Пока же — спасибо за внимание! В случае возникновения вопросов — пишите на почту или в Телеграм.