El problema de la generación de números aleatorios es bastante común, pero a veces, tenemos aplicaciones que nos exigen mejorar eso y proporcionar alguna funcionalidad para generar una string aleatoria de dígitos y alfabetos para aplicaciones como contraseñas. Discutamos ciertas formas en las que esto se puede realizar en Python . Aquí, usaremos la generación de strings aleatorias con letras mayúsculas y dígitos
Método 1: generar una string aleatoria usando random.choices()
Esta función random.choices() de un módulo aleatorio puede ayudarnos a lograr esta tarea y proporciona una alternativa de una sola línea a un ciclo completo que podría ser necesario para esta tarea en particular. Funciona con Python > v3.6.
- String.ascii_uppercase – Devuelve la string con mayúsculas.
- String.digits – Devuelve la string con dígitos.
- String.punctuation – Devuelve la string con puntuaciones
- String.ascii_letters : devuelve la string que contiene varios casos.
- String.ascii_lowercase – Devuelve la string con minúsculas.
Ejemplo 1: generación de strings aleatorias con letras mayúsculas
Python3
import string import random # initializing size of string N = 7 # using random.choices() # generating random strings res = ''.join(random.choices(string.ascii_uppercase + string.digits, k=N)) # print result print("The generated random string : " + str(res))
Producción :
The generated random string : 0D5YE91
Ejemplo 2: generar una string aleatoria de una longitud determinada en minúsculas
Python3
import string import random # initializing size of string N = 7 # using random.choices() # generating random strings res = ''.join(random.choices(string.ascii_lowercase + string.digits, k=N)) # print result print("The generated random string : " + str(res))
Producción:
The generated random string : ipxktny
Ejemplo 3: generar una string aleatoria de una longitud determinada en mayúsculas y minúsculas
Python3
import string import random # initializing size of string N = 7 # using random.choices() # generating random strings res = ''.join(random.choices(string.ascii_letters, k=N)) # print result print("The generated random string : " + str(res))
Producción:
The generated random string : ALpxvmI
Método 2: Genera una string aleatoria usando secrets.choice()
Podemos generar strings aleatorias y contraseñas en Python usando secrets.choice(). Para números aleatorios criptográficamente más seguros, esta función del módulo secreto se puede utilizar ya que su algoritmo interno está enmarcado de manera que genera números aleatorios menos predecibles.
Python3
import secrets import string # initializing size of string N = 7 # using random.choices() # generating random strings res = ''.join(secrets.choice(string.ascii_uppercase + string.digits) for i in range(N)) # print result print("The generated random string : " + str(res))
The generated random string : T7HPKVR
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA