Pitón | Generar una cadena aleatoria de una longitud determinada
El problema de la generación de números aleatorios es bastante común, pero a veces tenemos aplicaciones que requieren que mejoremos eso y brindemos alguna funcionalidad para generar una cadena aleatoria de dígitos y alfabetos para aplicaciones como contraseñas. Analicemos ciertas formas en que esto se puede realizar en Python. Aquí usaremos la generación aleatoria de cadenas con letras mayúsculas y dígitos.
Método 1: generar una cadena aleatoria usando random.choices()
Este elecciones.aleatorias() La función de un módulo aleatorio puede ayudarnos a lograr esta tarea y proporciona una alternativa de una sola línea a un bucle completo que podría ser necesario para esta tarea en particular. Funciona con Python> v3.6.
- Cadena.ascii_uppercase – Devuelve la cadena en mayúsculas.
- Cadena.digitos – Devuelve la cadena con dígitos.
- Puntuación.de.cadena – Devuelve la cadena con puntuaciones.
- Cadena.ascii_letters – Devuelve la cadena que contiene varios casos.
- Cadena.ascii_minúsculas – Devuelve la cadena en minúsculas.
Ejemplo 1: generación aleatoria de cadenas 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 un aleatorio cadena 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 cadena 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: generar una cadena aleatoria usando secrets.choice()
Podemos Genere cadenas aleatorias y contraseñas en Python usando secretos.elección(). 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á estructurado de manera que genere números aleatorios menos predecibles.
Python3
import> secrets> import> string> # initializing size of string> N> => 7> # using secrets.choice()> # 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))> |
Producción :
The generated random string : T7HPKVR
Acercarse :
Importe los módulos necesarios: aleatorio y de cadena.
Defina una función llamada generate_random_string que tome una longitud de parámetro para determinar la longitud de la cadena aleatoria a generar.
Utilice string.ascii_letters para obtener todas las letras ASCII en minúsculas y mayúsculas.
Utilice random.choice para elegir aleatoriamente caracteres de letras para la longitud dada de la cadena y concatenarlos usando .join().
Devuelve la cadena generada.
Utilice la función pasando la longitud deseada para generar una cadena aleatoria.
Python3
import> random> import> string> def> generate_random_string(length):> > # Get all the ASCII letters in lowercase and uppercase> > letters> => string.ascii_letters> > # Randomly choose characters from letters for the given length of the string> > random_string> => ''.join(random.choice(letters)> for> i> in> range> (length))> > return> random_string> # Example usage: generate a random string of length 10> random_string> => generate_random_string(> 10> )> print> (random_string)> |
Producción
mFPltLThhj
Complejidad del tiempo: O (n), donde n es la longitud de la cadena aleatoria deseada.
Espacio auxiliar: O(n), donde n es la longitud de la cadena aleatoria deseada.