Python | Vygenerujte náhodný reťazec danej dĺžky

Problém generovania náhodných čísel je pomerne bežný, ale niekedy máme aplikácie, ktoré od nás vyžadujú, aby sme to zlepšili a poskytli určitú funkčnosť generovania náhodného reťazca číslic a abecied pre aplikácie, ako sú heslá. Poďme diskutovať o určitých spôsoboch, ako to možno vykonať v Pythone. Tu použijeme generovanie náhodného reťazca s veľkými písmenami a číslicami

Metóda 1: Vygenerujte náhodný reťazec pomocou random.choices()

Toto random.choices() funkcia náhodného modulu nám môže pomôcť dosiahnuť túto úlohu a poskytuje jednoradovú alternatívu k celej slučke, ktorá môže byť potrebná pre túto konkrétnu úlohu. Funguje s Pythonom> v3.6.

  • String.ascii_uppercase – Vráti reťazec s veľkými písmenami.
  • Reťazec.číslice – Vráti reťazec s číslicami.
  • Reťazec.interpunkcia – Vráti reťazec s interpunkciou
  • String.ascii_letters – Vráti reťazec obsahujúci rôzne prípady.
  • String.ascii_lowercase – Vráti reťazec s malými písmenami.

Príklad 1: Náhodné generovanie reťazca s veľkými písmenami

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

Výkon :

The generated random string : 0D5YE91 

Príklad 2: Vygenerujte a náhodný reťazec danej dĺžky malými písmenami

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

Výkon:

The generated random string : ipxktny 

Príklad 3: Vygenerujte náhodný reťazec danej dĺžky veľkými a malými písmenami

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

Výkon:

The generated random string : ALpxvmI 

Metóda 2: Vygenerujte náhodný reťazec pomocou secrets.choice()

Môžeme Generujte náhodné reťazce a heslá v Pythone pomocou secrets.choice(). Pre kryptograficky bezpečnejšie náhodné čísla možno túto funkciu tajného modulu použiť, pretože jeho vnútorný algoritmus je zostavený tak, aby generoval menej predvídateľné náhodné čísla.

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

Výkon :

The generated random string : T7HPKVR 

Prístup :

Importujte potrebné moduly: náhodné a reťazcové.
Definujte funkciu s názvom create_random_string, ktorá má dĺžku parametra na určenie dĺžky náhodného reťazca, ktorý sa má vygenerovať.
Použite string.ascii_letters na získanie všetkých písmen ASCII na malé a veľké písmená.
Použite random.choice na náhodný výber znakov z písmen pre danú dĺžku reťazca a zreťazte ich pomocou .join().
Vráti vygenerovaný reťazec.
Použite funkciu zadaním požadovanej dĺžky na vygenerovanie náhodného reťazca.

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

Výkon

mFPltLThhj 

Časová zložitosť: O(n), kde n je dĺžka požadovaného náhodného reťazca.

Pomocný priestor: O(n), kde n je dĺžka požadovaného náhodného reťazca.