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.