@ekzotika

Как сделать генерацию названий из согласных и гласных букв?

Здравствуйте! Пытаюсь сделать генерацию названий из пяти букв, чтобы было формата согласный_гласный_согласный_гласный_согласный. Подскажите, пожалуйста, что мне нужно сделать, чтобы брало букву сначала из одного массива, далее из другого и т.д. поочередно?

import string
import random

#согласные
consonants = ['B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q',
              'R', 'S', 'T', 'V', 'W', 'X', 'Z']

#гласные
vowels = ['A', 'E', 'I', 'O', 'U', 'Y']


def id_generator(size=5, chars=consonants + vowels):
    return print(''.join(random.choice(chars) for _ in range(size)))


id_generator()
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
pro100chel
@pro100chel
Senior Pomidor Developer | CEO of GOVNOKOD LTD.
Дурачок или прикидываешься?

import random

#согласные
consonants = ['B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q',
			  'R', 'S', 'T', 'V', 'W', 'X', 'Z']

#гласные
vowels = ['A', 'E', 'I', 'O', 'U', 'Y']


def id_generator(size=5):
	flag, word = True, ''
	for i in range(size):
		flag, word = not flag, word + random.choice(consonants) if flag else word + random.choice(vowels)
	print(word)

id_generator()
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F
def id_generator(size=5, chars=[consonants, vowels]):
  return ''.join(random.choice(chars[i % len(chars)]) for i in range(size))


print(id_generator())
print(id_generator(8, ['abcde', '12345', '!?:.;']))
Ответ написан
@Jungles
Молодой и зелёный
spoiler
import string
import random

#согласные
consonants = ['B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q',
              'R', 'S', 'T', 'V', 'W', 'X', 'Z']

#гласные
vowels = ['A', 'E', 'I', 'O', 'U', 'Y']


def id_generator():
    consonants_list = []
    vowels_list = []
    new_list = []
    for i in  range(3):
        consonants_list.append(random.choice(consonants))
    for i in range(2):
        vowels_list.append(random.choice(vowels))
    a = 0
    b = 0
    for i in range(2,7):
        if i%2 == 0:
            new_list.append(consonants_list[a])
            a += 1
        else:
            new_list.append(vowels_list[b])
            b += 1
    return "".join(new_list)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы