Python | Generați șir aleatoriu de lungime dată

Problema generării numerelor aleatoare este destul de comună, dar uneori, avem aplicații care ne cer să îmbunătățim acest lucru și să ofere o anumită funcționalitate de generare a unui șir aleatoriu de cifre și alfabete pentru aplicații precum parole. Să discutăm anumite moduri în care acest lucru poate fi realizat în Python. Aici, vom folosi generarea aleatorie de șiruri cu litere mari și cifre

Metoda 1: Generați un șir aleator folosind random.choices()

Acest random.choices() Funcția unui modul aleatoriu ne poate ajuta să realizăm această sarcină și oferă o alternativă cu o singură linie la o buclă întreagă care ar putea fi necesară pentru această sarcină particulară. Funcționează cu Python> v3.6.

  • String.ascii_majuscule – Returnează șirul cu majuscule.
  • Șir.cifre – Returnează șirul cu cifre.
  • Şir.punctuaţie – Returnează șirul cu semne de punctuație
  • String.ascii_litere – Returnează șirul care conține diferite cazuri.
  • String.ascii_minuscule – Returnează șirul cu litere mici.

Exemplul 1: generare aleatorie de șiruri cu litere mari

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

Ieșire:

The generated random string : 0D5YE91 

Exemplul 2: Generați a Aleatoriu șir de o lungime dată în litere mici

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

Ieșire:

The generated random string : ipxktny 

Exemplul 3: Generați un șir aleatoriu de o lungime dată în majuscule și minuscule

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

Ieșire:

The generated random string : ALpxvmI 

Metoda 2: Generați șir aleatoriu folosind secrets.choice()

Putem Generați șiruri aleatorii și parole în Python folosind secrete.alegere(). Pentru numere aleatoare mai sigure din punct de vedere criptografic, această funcție a modulului secret poate fi utilizată deoarece algoritmul său intern este încadrat într-un mod pentru a genera numere aleatoare mai puțin predictibile.

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

Ieșire:

The generated random string : T7HPKVR 

Abordare :

Importă modulele necesare: aleatoriu și șir.
Definiți o funcție numită generate_random_string care ia în considerare lungimea unui parametru pentru a determina lungimea șirului aleator de generat.
Utilizați string.ascii_letters pentru a obține toate literele ASCII în litere mici și mari.
Utilizați random.choice pentru a alege aleatoriu caractere din litere pentru lungimea dată a șirului și pentru a le concatena folosind .join().
Returnează șirul generat.
Utilizați funcția pasând lungimea dorită pentru a genera un șir aleator.

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

Ieșire

mFPltLThhj 

Complexitatea timpului: O(n), unde n este lungimea șirului aleator dorit.

Spațiu auxiliar: O(n), unde n este lungimea șirului aleator dorit.