import random
ABC = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я']
A = ['А', 'Е', 'Ё', 'И', 'О', 'У', 'Ы', 'Э', 'Ю', 'Я']
B = ['Б', 'В', 'Г', 'Д', 'Ж', 'З', 'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ']
creature = ''
while True:
fish = random.choices(ABC, k=8)
for i in range(2, len(fish)):
if fish[i] in A and fish[i-1] in A and fish[i-2] in A:
break
if fish[i] in B and fish[i-1] in B and fish[i-2] in B:
break
else:
creature = ''.join(fish)
break
print(creature)
Здесь мы используем бесконечный цикл
while True
, чтобы генерировать случайные последовательности букв, пока не будет найдена последовательность, которая удовлетворяет условиям.
Для генерации случайных последовательностей мы используем функцию
random.choices,
которой передаем список
ABC
и длину последовательности
k
.
Затем мы проверяем каждый элемент последовательности на предмет наличия недопустимых сочетаний гласных или согласных букв, используя цикл
for
и оператор
if
. Если мы находим такие сочетания, мы выходим из цикла с помощью оператора
break
. Если недопустимых сочетаний нет, мы объединяем выбранные буквы в итоговую строку
creature
с помощью метода
join
и выходим из цикла
while True
с помощью оператора
break
.
Наконец, мы выводим итоговую строку на экран с помощью функции
print
.