Náhodné označuje zhromažďovanie údajov alebo informácií, ktoré môžu byť dostupné v akomkoľvek poradí. The náhodný modul v pythone sa používa na generovanie náhodných reťazcov. Náhodný reťazec pozostáva z čísel, znakov a interpunkčných sérií, ktoré môžu obsahovať ľubovoľný vzor. Náhodný modul obsahuje dve metódy random.choice() a secrets.choice() , na vygenerovanie bezpečného reťazca. Poďme pochopiť, ako vygenerovať náhodný reťazec pomocou metód random.choice() a secrets.choice() v pytón .
Použitie random.choice()
The random.choice() funkcia sa používa v reťazci python na generovanie sekvencie znakov a číslic, ktoré môžu opakovať reťazec v ľubovoľnom poradí.
Vytvorte program na generovanie náhodného reťazca pomocou funkcie 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ýkon:
Nasledujú metódy používané v náhodnom module na generovanie náhodného reťazca.
Metódy | Popis |
---|---|
String.ascii_letters | Vráti náhodný reťazec, ktorý obsahuje veľké aj malé písmená. |
String_ascii_uppercase | Ide o metódu náhodného reťazca, ktorá vracia reťazec iba veľkými písmenami. |
String.ascii_lowercase | Ide o metódu náhodného reťazca, ktorá vracia reťazec iba s malými písmenami. |
Reťazec.číslice | Ide o metódu náhodného reťazca, ktorá vracia reťazec s číselnými znakmi. |
Reťazec.interpunkcia | Je to metóda náhodného reťazca, ktorá vracia reťazec s interpunkčnými znakmi. |
Vytvorte náhodný reťazec veľký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ýkon:
Náhodný reťazec špecifikovaných znakov
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ýkon:
Poznámka: Metóda random.choice() sa používa v programe python na opakovanie rovnakých reťazcov znakov. Ak nechceme zobrazovať opakujúce sa znaky, mali by sme použiť funkciu random.sample().
Vytvorte náhodný reťazec bez opakovania rovnakých znakov
pytón alebo
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ýkon:
Ako môžeme vidieť vo vyššie uvedenom výstupe, metóda random.sample() vracia reťazec, v ktorom sú všetky znaky jedinečné a neopakujúce sa. Zatiaľ čo metóda random.choice() vracia reťazec, ktorý môže obsahovať opakujúce sa znaky. Môžeme teda povedať, že ak chceme vygenerovať jedinečný náhodný reťazec, použite náhodná vzorka () metóda.
Vytvorte náhodný alfanumerický reťazec pozostávajúci z pevných písmen a číslic
Predpokladajme napríklad, že chceme náhodne vygenerovaný alfanumerický reťazec, ktorý obsahuje päť písmen a štyri číslice. Tieto parametre musíme definovať do funkcie.
Napíšme program na generovanie alfanumerického reťazca, ktorý 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ýkon:
Použitie secrets.choice()
Metóda secrets.choice() sa používa na generovanie bezpečnejšieho náhodného reťazca ako random.choice(). Ide o kryptograficky náhodný generátor reťazcov, ktorý zaisťuje, že žiadne dva procesy nemôžu súčasne získať rovnaké výsledky pomocou metódy secrets.choice().
Napíšme program na tlač bezpečného náhodného reťazca pomocou metódy 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ýkon:
Na vygenerovanie bezpečného náhodného reťazca použite inú metódu náhodného modulu.
Poďme napísať program na tlač bezpečných náhodných reťazcov pomocou rôznych metód secrets.choice().
Secret.py
# 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ýkon:
java string concat