Frågan om generering av slumptal är ganska vanlig, men ibland har vi applikationer som kräver att vi förbättrar det och tillhandahåller en viss funktionalitet för att generera en slumpmässig sträng av siffror och alfabet för applikationer som lösenord. Låt oss diskutera vissa sätt på vilka detta kan utföras i Python. Här kommer vi att använda slumpmässig stränggenerering med versaler och siffror
Metod 1: Skapa en slumpmässig sträng med random.choices()
Detta random.choices() funktion av en slumpmässig modul kan hjälpa oss att uppnå denna uppgift, och tillhandahåller ett one-liner-alternativ till en hel loop som kan krävas för just denna uppgift. Fungerar med Python> v3.6.
- String.ascii_versaler – Den returnerar strängen med versaler.
- String.digits – Den returnerar strängen med siffror.
- String.interpunktion – Den returnerar strängen med skiljetecken
- String.ascii_letters – Den returnerar strängen som innehåller olika fall.
- String.ascii_lowercase – Den returnerar strängen med gemener.
Exempel 1: Slumpmässig stränggenerering med versaler
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))> |
>
>
Utgång:
oxe vs tjur
The generated random string : 0D5YE91>
Exempel 2: Generera en slumpmässig sträng av en given längd med gemener
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>
Exempel 3: Generera en slumpmässig sträng med en given längd i versaler och gemener
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>
Metod 2: Generera slumpmässig sträng med secrets.choice()
Vi kan Generera slumpmässiga strängar och lösenord i Python med hjälp av secrets.choice(). För kryptografiskt säkrare slumptal kan denna funktion hos den hemliga modulen användas eftersom dess interna algoritm är inramad på ett sätt att generera mindre förutsägbara slumptal.
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))> |
>
>Utgång:
The generated random string : T7HPKVR>
Närma sig :
Importera de nödvändiga modulerna: slumpmässigt och sträng.
Definiera en funktion med namnet gener_random_string som tar in en parameterlängd för att bestämma längden på den slumpmässiga sträng som ska genereras.
Använd string.ascii_letters för att få alla ASCII-bokstäver med gemener och versaler.
Använd random.choice för att slumpmässigt välja tecken från bokstäver för den givna längden på strängen, och sammanfoga dem med .join().
Returnera den genererade strängen.
Använd funktionen genom att skicka in önskad längd för att generera en slumpmässig sträng.
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>
Tidskomplexitet: O(n), där n är längden på den önskade slumpmässiga strängen.
Auxiliary Space: O(n), där n är längden på den önskade slumpmässiga strängen.