Привет всем! В Телеграм пришел вопрос: как генерировать случайный текст на Python? После более подробного диалога стало понятно, что речь идет о программе, которая бы обрабатывала нечто вроде: Входная фраза вариант1|вариант2|вариант3 и создавала оригинальные предложения на базе всего этого.
Из быстрого и сырого решения в голову пришло нечто подобное:
-
import random #подключаем библиотеку, отвечающую за работу со случайными числами
-
-
maximum = int(input('Сколько раз генерировать текст: ')) #создаем переменную, отвечающую за максимальное количество текста
-
minimum = 1 #создали переменную, которая отвечает за минимальное значение
-
while minimum <= maximum: #создали цикл, который работает пока минимальное значение не станет больше или равным максимальному
-
file = 'text_base.txt' #ввели переменную, отвечающую за имя файла (туда будем сохранять итоги работы)
-
text_massive = 'Привет |все!|всем!|народ!|пипл!\n Сегодня |понедельник, и это прекрасно!|вторник, и ' \
-
'до пятницы осталось не так уж и много :)' #текстовая заготовка
-
-
temp_text = text_massive.split('\n') #Создали переменную, в которую забираем все, что делится \n
-
final_text = []создали пустой список
-
-
for temp in temp_text: #создали цикл, который обрабатывает весь текст в переменной
-
temp = temp.split('|') #идем по циклу, и берем все, что разделено |
-
random_number = random.randrange(1, len(temp))генерируем случайное число в диапазоне от первого элемента до максимального значения в списке
-
text_ok = temp[0] + temp[random_number] #получили переменную, которая состоит из первого слова в предложении + случайное в заданном диапазоне
-
final_text.append(text_ok) #результат работы положили в список
-
print(''.join(final_text)) #убрали лишние символы
-
final_text = str(final_text) #конвертировали в строковую переменную - что бы сохранить в список
-
final_text = final_text.replace('[', '').replace(']', '').replace('\'', '').replace(',', '') #убрали лишние знаки
-
-
with open(file, 'a', encoding='utf-8') as f: #создали файл в режиме до-записи
-
f.write(final_text + '\n') #сохранили результат работы
-
-
minimum = minimum + 1 #увеличили значение переменной на единицу
Собственно — код работает, но он сырой. Из основных недостатков вижу такие, как: невозможность выбора случайного текста несколько раз в одном предложении. В ближайшее время придумаю более логичную структуру работы и более функциональную.
Пока же — спасибо за внимание! В случае возникновения вопросов — пишите на почту или в Телеграм.