logo

Python | Genera una cadena aleatòria de longitud determinada

El problema de la generació de números aleatoris és força comú, però de vegades, tenim aplicacions que ens obliguen a millorar-ho i proporcionen alguna funcionalitat per generar una cadena aleatòria de dígits i alfabets per a aplicacions com ara contrasenyes. Parlem de certes maneres en què això es pot realitzar a Python. Aquí, utilitzarem la generació aleatòria de cadenes amb lletres i dígits majúscules

Mètode 1: genera una cadena aleatòria mitjançant random.choices()

Això eleccions.atzar() La funció d'un mòdul aleatori ens pot ajudar a aconseguir aquesta tasca i proporciona una alternativa d'una línia a tot un bucle que podria ser necessari per a aquesta tasca en particular. Funciona amb Python> v3.6.



  • String.ascii_majúscula – Retorna la cadena amb majúscules.
  • Cadena.dígits – Retorna la cadena amb dígits.
  • Corda.puntuació – Retorna la cadena amb signes de puntuació
  • String.ascii_letters – Retorna la cadena que conté diversos casos.
  • String.ascii_minúscula – Retorna la cadena amb minúscules.

Exemple 1: generació aleatòria de cadenes amb lletres majúscules

Python 3








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))>

>

>

Sortida:

alguna cosa quick sort
The generated random string : 0D5YE91>

Exemple 2: genera a aleatòria cadena d'una longitud determinada en minúscules

Python 3




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))>

>

>

Sortida:

The generated random string : ipxktny>

Exemple 3: genereu una cadena aleatòria d'una longitud determinada en majúscules i minúscules

Python 3




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))>

>

>

Sortida:

The generated random string : ALpxvmI>

Mètode 2: genera una cadena aleatòria mitjançant secrets.choice()

Podem Genereu cadenes i contrasenyes aleatòries amb Python secrets.elecció(). Per als números aleatoris criptogràficament més segurs, aquesta funció del mòdul secret es pot utilitzar ja que el seu algorisme intern s'emmarca d'una manera de generar números aleatoris menys predictibles.

Python 3




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))>

>

>

Sortida:

The generated random string : T7HPKVR>

Aproximació :

Importa els mòduls necessaris: aleatoris i de cadena.
Definiu una funció anomenada generate_random_string que tingui una longitud de paràmetre per determinar la longitud de la cadena aleatòria a generar.
Utilitzeu string.ascii_letters per obtenir totes les lletres ASCII en minúscules i majúscules.
Utilitzeu random.choice per triar aleatòriament caràcters de lletres per a la longitud determinada de la cadena i concatenar-los mitjançant .join().
Retorna la cadena generada.
Utilitzeu la funció passant la longitud desitjada per generar una cadena aleatòria.

Python 3




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)>

>

>

Sortida

mFPltLThhj>

Complexitat temporal: O(n), on n és la longitud de la cadena aleatòria desitjada.

Espai auxiliar: O(n), on n és la longitud de la cadena aleatòria desitjada.