Python | Sugeneruokite atsitiktinę nurodyto ilgio eilutę

Atsitiktinių skaičių generavimo problema yra gana dažna, tačiau kartais turime programų, kurias reikia patobulinti ir suteikti galimybę generuoti atsitiktinę skaitmenų ir abėcėlės eilutę tokioms programoms kaip slaptažodžiai. Aptarkime tam tikrus būdus, kaip tai galima atlikti naudojant Python . Čia naudosime atsitiktinių eilučių generavimą su didžiosiomis raidėmis ir skaitmenimis

1 būdas: sugeneruokite atsitiktinę eilutę naudodami random.choices()

Tai random.choices() Atsitiktinio modulio funkcija gali padėti mums atlikti šią užduotį ir suteikia alternatyvą visai kilpai, kurios gali prireikti šiai konkrečiai užduočiai atlikti. Veikia su Python> v3.6.

  • Styga.ascii_didžiosios raidės – Grąžina eilutę su didžiosiomis raidėmis.
  • Styga.skaitmenys – Grąžina eilutę su skaitmenimis.
  • Styga.skyrybos ženklai – Grąžina eilutę su skyrybos ženklais
  • String.ascii_letters – Grąžina eilutę, kurioje yra įvairių atvejų.
  • String.ascii_lowercase – Grąžina eilutę mažosiomis raidėmis.

1 pavyzdys: Atsitiktinė eilutė su didžiosiomis raidėmis

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

Išvestis:

The generated random string : 0D5YE91 

2 pavyzdys: Sukurkite a atsitiktinis tam tikro ilgio eilutė mažosiomis raidėmis

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

Išvestis:

The generated random string : ipxktny 

3 pavyzdys: sugeneruokite atsitiktinę tam tikro ilgio eilutę didžiosiomis ir mažosiomis raidėmis

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

Išvestis:

The generated random string : ALpxvmI 

2 būdas: generuokite atsitiktinę eilutę naudodami secrets.choice()

Mes galime Sukurkite atsitiktines eilutes ir slaptažodžius naudodami Python paslaptys.pasirinkimas(). Kriptografiškai saugesniems atsitiktiniams skaičiams ši slaptojo modulio funkcija gali būti naudojama, nes jos vidinis algoritmas yra suformuotas taip, kad generuotų mažiau nuspėjamus atsitiktinius skaičius.

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

Išvestis:

The generated random string : T7HPKVR 

metodas :

Importuokite reikiamus modulius: atsitiktinius ir eilutes.
Apibrėžkite funkciją generuoti_atsitiktinę_stringą, kuri paima parametro ilgį, kad nustatytų generuojamos atsitiktinės eilutės ilgį.
Naudokite string.ascii_letters, kad gautumėte visas ASCII raides mažosiomis ir didžiosiomis raidėmis.
Naudokite random.choice, kad atsitiktinai pasirinktumėte simbolius iš raidžių tam tikro ilgio eilutėje ir sujunkite juos naudodami .join().
Grąžinkite sugeneruotą eilutę.
Naudokite funkciją įvesdami norimą ilgį, kad sugeneruotumėte atsitiktinę eilutę.

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

Išvestis

mFPltLThhj 

Laiko sudėtingumas: O(n), kur n yra norimos atsitiktinės eilutės ilgis.

Pagalbinė erdvė: O(n), kur n yra norimos atsitiktinės eilutės ilgis.