Python | Generer tilfældig streng af given længde

Spørgsmålet om generering af tilfældige tal er ret almindeligt, men nogle gange har vi applikationer, der kræver, at vi forbedrer det og giver en vis funktionalitet til at generere en tilfældig streng af cifre og alfabeter til applikationer såsom adgangskoder. Lad os diskutere visse måder, hvorpå dette kan udføres i Python. Her vil vi bruge Random string generation med store bogstaver og cifre

Metode 1: Generer en tilfældig streng ved hjælp af random.choices()

Det her random.choices() funktion af et tilfældigt modul kan hjælpe os med at opnå denne opgave og giver et one-liner alternativ til en hel sløjfe, der kan være påkrævet til denne særlige opgave. Virker med Python> v3.6.

  • String.ascii_store bogstaver – Det returnerer strengen med store bogstaver.
  • Streng.cifre – Det returnerer strengen med cifre.
  • Streng.tegnsætning – Det returnerer strengen med tegnsætninger
  • String.ascii_letters – Det returnerer strengen, der indeholder forskellige tilfælde.
  • String.ascii_små bogstaver – Det returnerer strengen med små bogstaver.

Eksempel 1: Tilfældig strenggenerering med store bogstaver

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

Output:

The generated random string : 0D5YE91 

Eksempel 2: Generer en tilfældig streng af en given længde med små bogstaver

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

Produktion:

The generated random string : ipxktny 

Eksempel 3: Generer en tilfældig streng af en given længde med store og små bogstaver

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

Produktion:

The generated random string : ALpxvmI 

Metode 2: Generer tilfældig streng ved hjælp af secrets.choice()

Vi kan Generer tilfældige strenge og adgangskoder i Python ved hjælp af secrets.choice(). For kryptografisk mere sikre tilfældige tal kan denne funktion af det hemmelige modul bruges, da dets interne algoritme er indrammet på en måde, der genererer mindre forudsigelige tilfældige tal.

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

Output:

The generated random string : T7HPKVR 

Nærme sig :

Importer de nødvendige moduler: tilfældig og streng.
Definer en funktion med navnet gener_random_string, der tager en parameterlængde ind for at bestemme længden af ​​den tilfældige streng, der skal genereres.
Brug string.ascii_letters til at få alle ASCII-bogstaverne med små og store bogstaver.
Brug random.choice til tilfældigt at vælge tegn fra bogstaver for den givne længde af strengen, og sammenkæde dem ved hjælp af .join().
Returner den genererede streng.
Brug funktionen ved at indtaste den ønskede længde for at generere en tilfældig streng.

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

Produktion

mFPltLThhj 

Tidskompleksitet: O(n), hvor n er længden af ​​den ønskede tilfældige streng.

Auxiliary Space: O(n), hvor n er længden af ​​den ønskede tilfældige streng.