¿Hay alguna manera de generar letras aleatorias en Python (como random.randint pero para letras)? La funcionalidad de rango de random.randint sería agradable, pero tener un generador que solo genere una letra aleatoria sería mejor que nada.Generar una letra aleatoria en Python
Respuesta
simple:
>>> import string
>>> string.letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> import random
>>> random.choice(string.letters)
'j'
string.letters
devuelve una cadena que contiene el minúsculas y mayúsculas de acuerdo con la localización actual; si eso no es aceptable, string.ascii_letters
probablemente haga el truco.
random.choice
devuelve un único elemento aleatorio de una secuencia.
>>> import random
>>> import string
>>> random.choice(string.ascii_letters)
'g'
Esto puede ser menor o mayúscula. No estoy seguro si eso es lo que se necesita. –
Otra forma, para lo completo:
>>> chr(random.randrange(97, 97 + 26 + 1))
uso del hecho de que ascii
'a' es 97, y hay 26 letras en el alfabeto.
Eso depende de qué alfabeto estamos hablando ;-) – Joey
>>> import random
>>> import string
>>> random.choice(string.ascii_lowercase)
'b'
def randchar(a, b):
return chr(random.randint(ord(a), ord(b)))
Tal vez esto le puede ayudar:
import random
for a in range(64,90):
h = random.randint(64, a)
e += chr(h)
print e
>>>def random_char(y):
return ''.join(random.choice(string.ascii_letters) for x in range(y))
>>>print (random_char(5))
>>>fxkea
para generar y número de caracteres aleatorios
también: ''' .join (random.sample (string.ascii_lowercase, 5))' – Dannid
@Dannid Does not 'random.sample() 'devuelve un * conjunto * único de valores de la entrada, que no es lo mismo que' random.choice() '? – Droppy
Sí, aunque si elige solo una letra que no hace una diferencia Además, puede querer 5 letras únicas: el OP no especificó, y tanto 'random.choice' como' random.randint' devuelven un valor único También puede usar 'numpy.random.choice' para dar un conjunto único si agrega replace = False, así:' numpy.random.choice (string.ascii_lowercase, size = 5, replace = False) ' – Dannid
Colocar un pitón en el teclado y dejar que ruede sobre las letras hasta que encuentres tu combo aleatorio preferido ¡Es una broma!
import string #This was a design above but failed to print. I remodled it.
import random
irandom = random.choice(string.ascii_letters)
print irandom
Bienvenido a Stack ¡Rebosar! Si bien esta es una buena respuesta, es idéntica a la respuesta ya publicada y aceptada por @MarkRushakoff, respondida hace dos años. Revise las respuestas antes de publicar para que podamos mantener baja la relación señal/ruido. – Hooked
import string
import random
KEY_LEN = 20
def base_str():
return (string.letters+string.digits)
def key_gen():
keylist = [random.choice(base_str()) for i in range(KEY_LEN)]
return ("".join(keylist))
Puede obtener cadenas aleatorias como esto:
g9CtUljUWD9wtk1z07iF
ndPbI1DDn6UvHSQoDMtd
klMFY3pTYNVWsNJ6cs34
Qgr7OEalfhXllcFDGh2l
import random
def guess_letter():
return random.choice('abcdefghijklmnopqrstuvwxyz')
puede simplemente hacer una lista:
import random
list1=[a,b,c,d,e,f,g,h]
b=random.randint(0,7)
print(list1[b])
Usted puede utilizar esto para conseguir uno o más letras al azar
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(letters)
['o', 'l', 'p', 'f', 'v']
Mejoraría la calidad de su respuesta si proporciona información sobre lo que ha hecho. Además, como esta pregunta tiene una respuesta aceptada, ¿por qué su solución es diferente? –
bien, esta es mi respuesta! Funciona bien. Sólo hay que poner el número de letras al azar que desee en 'número' ... (Python 3)
import random
def key_gen():
keylist = random.choice('abcdefghijklmnopqrstuvwxyz')
return keylist
number = 0
list_item = ''
while number < 20:
number = number + 1
list_item = list_item + key_gen()
print(list_item)
import string
import random
def random_char(y):
return ''.join(random.choice(string.ascii_letters+string.digits+li) for x in range(y))
no=int(input("Enter the number of character for your password= "))
li = random.choice('[email protected]#$%^*&()_+}{')
print(random_char(no)+li)
Debe formatear y describir su respuesta – ted
- 1. Generar cadena UTF-8 aleatoria en Python
- 2. Generar una permutación aleatoria uniforme
- 3. Generar una pantalla predeterminada aleatoria en iOS
- 4. ¿Cómo generar una fecha aleatoria en Ruby?
- 5. Generar dirección IP aleatoria
- 6. ¿Cómo generar una imagen completamente aleatoria?
- 7. Generar fecha de nacimiento aleatoria
- 8. Generar una cadena aleatoria basada en una expresión regular
- 9. secuencia aleatoria en python
- 10. Reproducción aleatoria en Python
- 11. iteración aleatoria en Python
- 12. generar secuencia aleatoria y trazar en R
- 13. Escogiendo una palabra aleatoria en Python?
- 14. Generar enumeración aleatoria en C# 2.0
- 15. ¿Cómo puedo generar una cadena aleatoria (de longitud X, a-z solamente) en Python?
- 16. Generar flotación aleatoria entre dos carrozas
- 17. ¿Cómo puedo generar una partición entera aleatoria uniforme?
- 18. generar aleatoria de 64 bits número entero
- 19. Cómo generar una buena semilla aleatoria para pasar a srand()?
- 20. Cómo generar una cadena aleatoria de 20 caracteres
- 21. Cómo generar una fecha aleatoria entre dos fechas usando php?
- 22. Crear lista aleatoria de enteros en Python
- 23. ¿Cómo verificaría una cadena para una determinada letra en Python?
- 24. Generando una cadena aleatoria
- 25. ¿Cómo hacer una mezcla aleatoria pero parcial en Python?
- 26. ¿Cómo leo una línea aleatoria de un archivo en Python?
- 27. de búsqueda sólo una letra Unicode en Python re
- 28. ¿Cómo creo una ruta aleatoria?
- 29. Generar una imagen de vista previa aleatoria en una etiqueta de video HTML5
- 30. Generar una secuencia de números en Python
De hecho, es string.ascii_lowercase o string.ascii_uppercase. –
string.letters desapareció después de Python 2.6. En python 3.1 debe usar string.ascii_letters que también está presente en python 2.6 – joaquin
A menudo, necesito una cadena de randoms, aquí está eso (después de 'from string import ascii_letters, digits' y' from random selection choice'): ''' .join ([choice (ascii_letters + digits) for i in range (32)]) ' – Devin