logo

Python | Vygenerujte náhodný řetězec dané délky

Problém generování náhodných čísel je poměrně častý, ale někdy máme aplikace, které po nás vyžadují, abychom to zlepšili a poskytli určitou funkcionalitu generování náhodného řetězce číslic a abeced pro aplikace, jako jsou hesla. Pojďme diskutovat o určitých způsobech, jak to lze provést v Pythonu. Zde použijeme generování náhodného řetězce s velkými písmeny a číslicemi

Metoda 1: Vygenerujte náhodný řetězec pomocí random.choices()

Tento random.choices() Funkce náhodného modulu nám může pomoci dosáhnout tohoto úkolu a poskytuje jednořádkovou alternativu k celé smyčce, která může být pro tento konkrétní úkol vyžadována. Funguje s Pythonem> v3.6.



  • String.ascii_uppercase – Vrací řetězec s velkými písmeny.
  • Řetězec.číslice – Vrací řetězec s číslicemi.
  • Řetězec.interpunkce – Vrátí řetězec s interpunkcí
  • String.ascii_letters – Vrací řetězec obsahující různé případy.
  • String.ascii_lowercase – Vrací řetězec s malými písmeny.

Příklad 1: Generování náhodného řetězce s velkými písmeny

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ýstup :

java bod
The generated random string : 0D5YE91>

Příklad 2: Vygenerujte a náhodný řetězec dané délky malými písmeny

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ýstup:

The generated random string : ipxktny>

Příklad 3: Vygenerujte náhodný řetězec dané délky velkými a malými písmeny

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ýstup:

The generated random string : ALpxvmI>

Metoda 2: Vygenerujte náhodný řetězec pomocí secrets.choice()

Můžeme Generujte náhodné řetězce a hesla v Pythonu pomocí secrets.choice(). Pro kryptograficky bezpečnější náhodná čísla lze tuto funkci tajného modulu použít, protože jeho vnitřní algoritmus je zarámován tak, aby generoval méně předvídatelná 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ýstup :

The generated random string : T7HPKVR>

Přístup :

Importujte potřebné moduly: náhodné a řetězcové.
Definujte funkci s názvem generovat_náhodný_řetězec, která zabírá délku parametru k určení délky náhodného řetězce, který se má generovat.
Pomocí string.ascii_letters získáte všechna písmena ASCII na malá a velká písmena.
Použijte random.choice k náhodnému výběru znaků z písmen pro danou délku řetězce a spojte je pomocí .join().
Vraťte vygenerovaný řetězec.
Použijte funkci předáním požadované délky k vygenerování náhodného řetězce.

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ýstup

mFPltLThhj>

Časová složitost: O(n), kde n je délka požadovaného náhodného řetězce.

Pomocný prostor: O(n), kde n je délka požadovaného náhodného řetězce.