Есть ли способ генерировать случайные буквы в Python (например, random.randint, но для букв)? Функциональность диапазона в random.randint была бы хорошей, но иметь генератор, который просто выводит случайную букву, было бы лучше, чем ничего.
Simple:
>>> import string >>> string.ascii_letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> import random >>> random.choice(string.ascii_letters) 'j'
string.ascii_letters возвращает строку, содержащую строчные и прописные буквы в соответствии с текущей локалью.
string.ascii_letters
random.choice возвращает один случайный элемент из последовательности.
random.choice
>>> import random >>> import string >>> random.choice(string.ascii_letters) 'g'
>>>def random_char(y): return ''.join(random.choice(string.ascii_letters) for x in range(y)) >>>print (random_char(5)) >>>fxkea
для генерации y числа случайных символов
>>> import random >>> import string >>> random.choice(string.ascii_lowercase) 'b'
Другой способ, для полноты:
>>> chr(random.randrange(97, 97 + 26))
Используйте тот факт, что ascii 'a' равно 97, и в алфавите 26 букв.
ascii
При определении верхней и нижней границы вызова функции random.randrange() следует помнить, что random.randrange() является исключительным для его верхней границы, то есть оно будет генерировать целое число только на 1 единицу меньше, чем указанное значение. *
random.randrange()
def randchar(a, b): return chr(random.randint(ord(a), ord(b)))
import random def guess_letter(): return random.choice('abcdefghijklmnopqrstuvwxyz')
Вы можете использовать это, чтобы получить одну или несколько случайных букв
import random import string random.seed(10) letters = string.ascii_lowercase rand_letters = random.choices(letters,k=5) # where k is the number of required rand_letters print(rand_letters) ['o', 'l', 'p', 'f', 'v']
Вы можете просто составить список:
import random list1=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] b=random.randint(0,7) print(list1[b])
import random def Random_Alpha(): l = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] return l[random.randint(0,25)] print(Random_Alpha())