Existe uma maneira de gerar letras aleatórias em Python (como random.randint, mas para letras)? A funcionalidade do intervalo random.randint seria boa, mas ter um gerador que apenas produza uma letra aleatória seria melhor que nada.
python
random
python-3.x
Kudu
fonte
fonte
from string import ascii_letters, digits
efrom random import choice
):''.join([choice(ascii_letters + digits) for i in range(32)])
fonte
ascii_letters
, incluindo,,ascii_uppercase
eascii_lowercase
.para gerar um número y de caracteres aleatórios
fonte
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
retorna um conjunto exclusivo de valores da entrada, que não é o mesmo querandom.choice()
?random.choice
erandom.randint
retornam um único valor. Você também pode usarnumpy.random.choice
para dar um conjunto único se você adicionar substituir = False, assim:numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
fonte
Outra maneira, para ser completo:
Use o fato de que
ascii
'a' é 97 e há 26 letras no alfabeto.Ao determinar os limites superior e inferior da
random.randrange()
chamada de função, lembre-se de que elerandom.randrange()
é exclusivo em seu limite superior, o que significa que apenas um número inteiro será gerado até 1 unidade a menos que o valor fornecido.fonte
chr(random.randrange(97, 97 + 26 - 1))
?chr(random.randrange(97, 97 + 26)
.random.randrange()
é exclusivo em seu limite superior, o que significa que, para obter todo o intervalo de caracteres97 - 122
, o argumento passado deve ser123
.97 + 26
é usado.Você pode usar isso para obter uma ou mais letras aleatórias
fonte
random.choices
?help(random.choices)
afirmaIf the relative weights or cumulative weights are not specified, the selections are made with equal probability.
Isso significa que a distribuição é a distribuição uniforme e discreta ( en.wikipedia.org/wiki/Discrete_uniform_distribution ).Você pode apenas fazer uma lista:
fonte
fonte
fonte
fonte
Você pode usar
fonte
Você pode obter seqüências aleatórias como esta:
fonte
string.ascii_letters
2. Você pode salvar a compreensão da lista usandokeylist = random.choices(base_str(), k=KEY_LEN)
3. Por que terbase_str
como função e não abase_str = string.ascii_letters+string.digits
?fonte
Todas as respostas anteriores estão corretas. Se você está procurando caracteres aleatórios de vários tipos (por exemplo, caracteres alfanuméricos e especiais), então aqui está um script que eu criei para demonstrar vários tipos de criação de funções aleatórias. Ele possui três funções, uma para números, alfa- caracteres e caracteres especiais. O script simplesmente gera senhas e é apenas um exemplo para demonstrar várias maneiras de gerar caracteres aleatórios.
Resultado:
fonte
bem, esta é a minha resposta! Isso funciona bem. Basta colocar o número de letras aleatórias que você deseja em 'número' ... (Python 3)
fonte
fonte
Meu pedaço de código excessivamente complicado:
Basicamente, gera um número aleatório de 26 e depois converte na sua letra correspondente. Isso poderia ser desafiadoramente melhorado, mas sou apenas iniciante e tenho orgulho desse pedaço de código.
fonte
print(chr(96 + letter))
, nãoif
-elif
o inferno é necessáriaTalvez isso possa te ajudar:
fonte
@AAADCCEHFGJLDJF@EHFMHKWUR
Coloque um python no teclado e deixe-o rolar sobre as letras até encontrar sua combinação aleatória preferida.
fonte