Python | Generer tilfeldig streng med gitt lengde
Spørsmålet om generering av tilfeldige tall er ganske vanlig, men noen ganger har vi applikasjoner som krever at vi forbedrer det og gir en viss funksjonalitet for å generere en tilfeldig streng med sifre og alfabeter for applikasjoner som passord. La oss diskutere visse måter dette kan utføres på i Python. Her vil vi bruke tilfeldig strenggenerering med store bokstaver og sifre
Metode 1: Generer en tilfeldig streng ved å bruke random.choices()
Dette random.choices() funksjonen til en tilfeldig modul kan hjelpe oss med å oppnå denne oppgaven, og gir et one-liner alternativ til en hel sløyfe som kan være nødvendig for denne spesielle oppgaven. Fungerer med Python> v3.6.
- String.ascii_store bokstaver – Den returnerer strengen med store bokstaver.
- String.digits – Den returnerer strengen med sifre.
- String.tegnsetting – Den returnerer strengen med tegnsetting
- String.ascii_letters – Den returnerer strengen som inneholder forskjellige kasus.
- String.ascii_små bokstaver – Den returnerer strengen med små bokstaver.
Eksempel 1: Generering av tilfeldig streng med store bokstaver
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))> |
Utgang:
The generated random string : 0D5YE91
Eksempel 2: Generer en tilfeldig streng av en gitt lengde med små bokstaver
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))> |
Produksjon:
The generated random string : ipxktny
Eksempel 3: Generer en tilfeldig streng med en gitt lengde med store og små bokstaver
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))> |
Produksjon:
The generated random string : ALpxvmI
Metode 2: Generer tilfeldig streng ved å bruke secrets.choice()
Vi kan Generer tilfeldige strenger og passord i Python ved hjelp av secrets.choice(). For kryptografisk sikrere tilfeldige tall, kan denne funksjonen til den hemmelige modulen brukes ettersom dens interne algoritme er innrammet på en måte som genererer mindre forutsigbare tilfeldige tall.
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))> |
Utgang:
The generated random string : T7HPKVR
Nærme seg :
Importer de nødvendige modulene: tilfeldig og streng.
Definer en funksjon kalt gener_random_string som tar inn en parameterlengde for å bestemme lengden på den tilfeldige strengen som skal genereres.
Bruk string.ascii_letters for å få alle ASCII-bokstavene med små og store bokstaver.
Bruk random.choice for å tilfeldig velge tegn fra bokstaver for den gitte lengden på strengen, og sett dem sammen med .join().
Returner den genererte strengen.
Bruk funksjonen ved å sende inn ønsket lengde for å generere en tilfeldig 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)> |
Produksjon
mFPltLThhj
Tidskompleksitet: O(n), der n er lengden på den ønskede tilfeldige strengen.
Auxiliary Space: O(n), der n er lengden på den ønskede tilfeldige strengen.