Náhodou se rozumí shromažďování dat nebo informací, které mohou být dostupné v libovolném pořadí. The náhodný modul v pythonu se používá ke generování náhodných řetězců. Náhodný řetězec se skládá z čísel, znaků a interpunkčních řad, které mohou obsahovat libovolný vzor. Náhodný modul obsahuje dvě metody random.choice() a secrets.choice() , pro vygenerování zabezpečeného řetězce. Pojďme pochopit, jak vygenerovat náhodný řetězec pomocí metod random.choice() a secrets.choice() v krajta .
Použití random.choice()
The random.choice() Funkce se používá v řetězci python ke generování sekvence znaků a číslic, které mohou řetězec opakovat v libovolném pořadí.
Vytvořte program pro generování náhodného řetězce pomocí funkce random.choices().
random_str.py
import string import random # define the random module S = 10 # number of characters in the string. # call random.choices() string module to find the string in Uppercase + numeric data. ran = ''.join(random.choices(string.ascii_uppercase + string.digits, k = S)) print('The randomly generated string is : ' + str(ran)) # print the random data
Výstup:
chyba atributu python
Následují metody používané v náhodném modulu pro generování náhodného řetězce.
zapouzdření java
Metody | Popis |
---|---|
String.ascii_letters | Vrací náhodný řetězec, který obsahuje velká i malá písmena. |
String_ascii_uppercase | Je to metoda náhodného řetězce, která vrací řetězec pouze velkými písmeny. |
String.ascii_lowercase | Je to metoda náhodného řetězce, která vrací řetězec pouze malými písmeny. |
Řetězec.číslice | Je to metoda náhodného řetězce, která vrací řetězec s číselnými znaky. |
Řetězec.interpunkce | Je to metoda náhodného řetězce, která vrací řetězec s interpunkčními znaky. |
Vygenerujte náhodný řetězec velkých a malých písmen
UprLwr.py
# write a program to generate the random string in upper and lower case letters. import random import string def Upper_Lower_string(length): # define the function and pass the length as argument # Print the string in Lowercase result = ''.join((random.choice(string.ascii_lowercase) for x in range(length))) # run loop until the define length print(' Random string generated in Lowercase: ', result) # Print the string in Uppercase result1 = ''.join((random.choice(string.ascii_uppercase) for x in range(length))) # run the loop until the define length print(' Random string generated in Uppercase: ', result1) Upper_Lower_string(10) # define the length
Výstup:
Náhodný řetězec zadaných znaků
Specific.py
# create a program to generate the random string of given letters. import random import string def specific_string(length): sample_string = 'pqrstuvwxy' # define the specific string # define the condition for random string result = ''.join((random.choice(sample_string)) for x in range(length)) print(' Randomly generated string is: ', result) specific_string(8) # define the length specific_string(10)
Výstup:
Poznámka: Metoda random.choice() se používá v programu python k opakování stejných řetězců znaků. Pokud nechceme zobrazovat opakující se znaky, měli bychom použít funkci random.sample().
Vygenerujte náhodný řetězec bez opakování stejných znaků
WithoutRepeat.py
# create a program to generate a string with or without repeating the characters. import random import string print('Use of random.choice() method') def specific_string(length): letters = string.ascii_lowercase # define the lower case string # define the condition for random.choice() method result = ''.join((random.choice(letters)) for x in range(length)) print(' Random generated string with repetition: ', result) specific_string(8) # define the length specific_string(10) print('') # print the space print('Use of random.sample() method') def WithoutRepeat(length): letters = string.ascii_lowercase # define the specific string # define the condition for random.sample() method result1 = ''.join((random.sample(letters, length))) print(' Random generated string without repetition: ', result1) WithoutRepeat(8) # define the length WithoutRepeat(10)
Výstup:
Jak můžeme vidět na výše uvedeném výstupu, metoda random.sample() vrací řetězec, ve kterém jsou všechny znaky jedinečné a neopakující se. Zatímco metoda random.choice() vrací řetězec, který může obsahovat opakující se znaky. Můžeme tedy říci, že pokud chceme vygenerovat jedinečný náhodný řetězec, použijte náhodný vzorek () metoda.
mvc v jarním rámci
Vygenerujte náhodný alfanumerický řetězec skládající se z pevných písmen a číslic
Předpokládejme například, že chceme náhodně vygenerovaný alfanumerický řetězec, který obsahuje pět písmen a čtyři číslice. Tyto parametry musíme definovat do funkce.
np.concatenate
Pojďme napsat program, který vygeneruje alfanumerický řetězec, který obsahuje pevný počet písmen a číslic.
FixedString.py
import random import string def random_string(letter_count, digit_count): str1 = ''.join((random.choice(string.ascii_letters) for x in range(letter_count))) str1 += ''.join((random.choice(string.digits) for x in range(digit_count))) sam_list = list(str1) # it converts the string to list. random.shuffle(sam_list) # It uses a random.shuffle() function to shuffle the string. final_string = ''.join(sam_list) return final_string # define the length of the letter is eight and digits is four print('Generated random string of first string is:', random_string(8, 4)) # define the length of the letter is seven and digits is five print('Generated random string of second string is:', random_string(7, 5))
Výstup:
Pomocí secrets.choice()
Metoda secrets.choice() se používá ke generování bezpečnějšího náhodného řetězce než random.choice(). Jedná se o kryptograficky náhodný generátor řetězců, který zajišťuje, že žádné dva procesy nemohou získat stejné výsledky současně pomocí metody secrets.choice().
Pojďme napsat program pro tisk bezpečného náhodného řetězce pomocí metody secrets.choice.
Secret_str.py
import random import string import secrets # import package num = 10 # define the length of the string # define the secrets.choice() method and pass the string.ascii_letters + string.digits as an parameters. res = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(num)) # print the Secure string print('Secure random string is :'+ str(res))
Výstup:
Ke generování bezpečného náhodného řetězce použijte jinou metodu náhodného modulu.
Pojďme napsat program pro tisk bezpečných náhodných řetězců pomocí různých metod secrets.choice().
Secret.py
jak odhalit skryté aplikace
# write a program to display the different random string method using the secrets.choice(). # imports necessary packages import random import string import secrets num = 10 # define the length of the string # define the secrets.choice() method and pass the string.ascii_letters + string.digits as an parameters. res = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(num)) # Print the Secure string with the combination of ascii letters and digits print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_letters) for x in range(num)) # Print the Secure string with the combination of ascii letters print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_uppercase) for x in range(num)) # Print the Secure string in Uppercase print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_lowercase) for x in range(num)) # Print the Secure string in Lowercase print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_letters + string.punctuation) for x in range(num)) # Print the Secure string with the combination of letters and punctuation print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.digits) for x in range(num)) # Print the Secure string using string.digits print('Secure random string is :'+ str(res)) res = ''.join(secrets.choice(string.ascii_letters + string.digits + string.punctuation) for x in range(num)) # Print the Secure string with the combonation of letters, digits and punctuation print('Secure random string is :'+ str(res))
Výstup: