Привет всем! В Телеграм пришел вопрос: как генерировать случайный текст на 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 #увеличили значение переменной на единицу
Собственно - код работает, но он сырой. Из основных недостатков вижу такие, как: невозможность выбора случайного текста несколько раз в одном предложении. В ближайшее время придумаю более логичную структуру работы и более функциональную.
Пока же - спасибо за внимание! В случае возникновения вопросов - пишите на почту или в Телеграм.
Support the Blog!
Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️