logo

Python | Genereer een willekeurige reeks met een bepaalde lengte

Het probleem van het genereren van willekeurige getallen is heel gebruikelijk, maar soms hebben we toepassingen die vereisen dat we dat verbeteren en enige functionaliteit bieden voor het genereren van een willekeurige reeks cijfers en alfabetten voor toepassingen zoals wachtwoorden. Laten we bepaalde manieren bespreken waarop dit in Python kan worden uitgevoerd. Hier gebruiken we willekeurige tekenreeksgeneratie met hoofdletters en cijfers

Methode 1: Genereer een willekeurige tekenreeks met random.choices()

Dit willekeurige.keuzes() De functie van een willekeurige module kan ons helpen deze taak te volbrengen, en biedt een one-liner alternatief voor een hele lus die nodig zou kunnen zijn voor deze specifieke taak. Werkt met Python> v3.6.

  • String.ascii_hoofdletter – Het retourneert de string met hoofdletters.
  • Tekenreekscijfers – Het retourneert de string met cijfers.
  • Tekenreeks.interpunctie – Het retourneert de tekenreeks met leestekens
  • String.ascii_letters – Het retourneert de string die verschillende gevallen bevat.
  • String.ascii_kleine letters – Het retourneert de tekenreeks met kleine letters.

Voorbeeld 1: Willekeurige stringgeneratie met hoofdletters

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

>

>

Uitgang:

Madhuri zei: kom op
The generated random string : 0D5YE91>

Voorbeeld 2: Genereer een willekeurig tekenreeks van een bepaalde lengte in kleine letters

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

>

>

Uitgang:

The generated random string : ipxktny>

Voorbeeld 3: Genereer een willekeurige reeks van een bepaalde lengte in hoofdletters en kleine letters

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

>

>

Uitgang:

The generated random string : ALpxvmI>

Methode 2: Genereer een willekeurige tekenreeks met behulp van secrets.choice()

We kunnen Genereer willekeurige tekenreeksen en wachtwoorden in Python met behulp van geheimen.keuze(). Voor cryptografisch veiligere willekeurige getallen kan deze functie van de geheime module worden gebruikt, omdat het interne algoritme zo is ingekaderd dat het minder voorspelbare willekeurige getallen genereert.

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

>

>

Uitgang:

The generated random string : T7HPKVR>

Benadering :

Importeer de benodigde modules: willekeurig en string.
Definieer een functie met de naam genereren_random_string die een parameterlengte in beslag neemt om de lengte te bepalen van de willekeurige tekenreeks die moet worden gegenereerd.
Gebruik string.ascii_letters om alle ASCII-letters in kleine letters en hoofdletters te krijgen.
Gebruik random.choice om willekeurig tekens uit letters te kiezen voor de opgegeven lengte van de tekenreeks, en voeg ze samen met .join().
Retourneert de gegenereerde tekenreeks.
Gebruik de functie door de gewenste lengte door te geven om een ​​willekeurige tekenreeks te genereren.

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

>

>

Uitvoer

mFPltLThhj>

Tijdcomplexiteit: O(n), waarbij n de lengte is van de gewenste willekeurige reeks.

Hulpruimte: O(n), waarbij n de lengte is van de gewenste willekeurige reeks.