¿Hay alguna manera de generar letras aleatorias en Python (como random.randint pero para letras)? La funcionalidad de rango de random.randint sería buena, pero tener un generador que solo genere una letra aleatoria sería mejor que nada.
python
random
python-3.x
Kudu
fuente
fuente
from string import ascii_letters, digits
yfrom random import choice
):''.join([choice(ascii_letters + digits) for i in range(32)])
fuente
ascii_letters
,ascii_uppercase
yascii_lowercase
.para generar y número de caracteres aleatorios
fuente
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
devuelve un conjunto único de valores de la entrada, que no es lo mismo querandom.choice()
?random.choice
yrandom.randint
devuelven un solo valor. También puede usarnumpy.random.choice
para dar un conjunto único si agrega replace = False, así:numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
fuente
Otra forma, para completar:
Use el hecho de que
ascii
'a' es 97, y hay 26 letras en el alfabeto.Al determinar el límite superior e inferior de la
random.randrange()
llamada a la función, recuerde querandom.randrange()
es exclusivo en su límite superior, lo que significa que solo generará un entero de hasta 1 unidad menos que el valor proporcionado.fuente
chr(random.randrange(97, 97 + 26 - 1))
?chr(random.randrange(97, 97 + 26)
.random.randrange()
es exclusivo en su límite superior, lo que significa que para obtener el rango completo de caracteres97 - 122
, el argumento pasado debe ser123
.97 + 26
se usa.Puede usar esto para obtener una o más letras aleatorias
fuente
random.choices
?help(random.choices)
afirmaIf the relative weights or cumulative weights are not specified, the selections are made with equal probability.
Esto significaría que la distribución es la distribución uniforme discreta ( en.wikipedia.org/wiki/Discrete_uniform_distribution ).Solo puedes hacer una lista:
fuente
fuente
fuente
fuente
Puedes usar
fuente
Puede obtener cadenas aleatorias como esta:
fuente
string.ascii_letters
2. Puede guardar la comprensión de la lista usandokeylist = random.choices(base_str(), k=KEY_LEN)
3. ¿Por qué tenerbase_str
una función y no unabase_str = string.ascii_letters+string.digits
?fuente
Todas las respuestas anteriores son correctas, si está buscando caracteres aleatorios de varios tipos (es decir, caracteres alfanuméricos y especiales), aquí hay un script que creé para demostrar varios tipos de creación de funciones aleatorias, tiene tres funciones, una para números, alfa- personajes y personajes especiales. El script simplemente genera contraseñas y es solo un ejemplo para demostrar varias formas de generar caracteres aleatorios.
Resultado:
fuente
bueno, esta es mi respuesta! Funciona bien. Simplemente ponga el número de letras al azar que desea en 'número' ... (Python 3)
fuente
fuente
Mi código demasiado complicado:
Básicamente genera un número aleatorio de 26 y luego se convierte en su letra correspondiente. Esto definitivamente podría mejorarse, pero solo soy un principiante y estoy orgulloso de este código.
fuente
print(chr(96 + letter))
, noif
-elif
se necesita el infiernoTal vez esto pueda ayudarle:
fuente
@AAADCCEHFGJLDJF@EHFMHKWUR
Coloque una pitón en el teclado y deje que pase sobre las letras hasta que encuentre su combo aleatorio preferido ¡Es broma!
fuente