Modul Python random vam ponuja različne funkcije za ge­ne­ri­ra­nje na­ključ­nih številk v različnih formatih, od celih številk do številk s plavajočo vejico in izbire elementov iz seznamov.

Kaj je Pythonov modul random in za kaj se lahko uporablja?

Modul Python random random je vgrajena knjižnica, ki omogoča ge­ne­ri­ra­nje na­ključ­nih številk in izvajanje na­ključ­nih operacij v programih. Vključuje različne funkcije za ge­ne­ri­ra­nje psev­do­na­ključ­nih številk, ki se lahko upo­ra­blja­jo v številnih apli­ka­ci­jah, od simulacij do razvoja iger in krip­to­graf­skih nalog.

Pomembna zna­čil­nost na­ključ­ne­ga modula je njegova spo­sob­nost za­go­ta­vlja­nja po­no­vlji­vih re­zul­ta­tov. Z do­lo­či­tvi­jo začetne vrednosti ali semena je mogoče ponoviti proces na­ključ­ne­ga ge­ne­ri­ra­nja. To je koristno za te­sti­ra­nje, ek­s­pe­ri­men­te in si­mu­la­ci­je, ki zahtevajo dosledne naključne podatke.

Kakšne so funkcije v na­ključ­nem modulu?

Pythonov modul random vsebuje različne metode za ge­ne­ri­ra­nje in obdelavo na­ključ­nih številk. V naslednji tabeli je prikazan pregled funkcij in njihovih lastnosti:

Ime funkcije Pojasnilo
seed(a=None, version=2) Določi začetno vrednost (semena) za generator na­ključ­nih številk
getstate() Vrne trenutno stanje ge­ne­ra­tor­ja na­ključ­nih številk kot objekt
setstate(state) Ponastavi stanje ge­ne­ra­tor­ja na­ključ­nih številk z uporabo objekta stanja
getrandbits(k) Vrne celo število s k biti
randrange(start, stop, step) Ustvari naključno celo število iz do­lo­če­ne­ga obsega.
randint(a, b) Vrne naključno celo število v določenem obsegu
choice(seq) Vrne naključni element iz dane zaporedja
choices(population, weights=None, *, cum_weights=None, k=1) Ustvari seznam s k naključno izbranimi elementi iz po­pu­la­ci­je; možnost določitve ver­je­tno­sti
sample(k, population) Ustvari seznam s k naključno izbranimi elementi iz po­pu­la­ci­je, brez pod­va­ja­nja
shuffle(x) Premeša elemente na seznamu v na­ključ­nem vrstnem redu.
random() Vrne naključno število s plavajočo vejico med 0 in 1.
uniform(a, b) Vrne naključno število s plavajočo vejico v določenem območju, vključno z mejnimi vre­dnost­mi.
triangular(low, high, mode) Ustvari naključno število s plavajočo vejico v trikotnem razponu po­raz­de­li­tve.
betavariate(alpha, beta) Vrne naključno število s plavajočo vejico iz beta po­raz­de­li­tve.
expovariate(lambd) Vrne naključno število s plavajočo vejico iz ek­spo­nen­tne po­raz­de­li­tve.
gammavariate(alpha, beta) Ustvari naključno število s plavajočo vejico iz gama po­raz­de­li­tve.
gauss(mu, sigma) Vrne naključno število s plavajočo vejico iz Gaussove po­raz­de­li­tve.
lognormvariate(mu, sigma) Ustvari naključno število s plavajočo vejico iz lo­ga­rit­mič­ne normalne po­raz­de­li­tve.
normalvariate(mu, sigma) Vrne naključno število s plavajočo vejico iz normalne po­raz­de­li­tve.
vonmisesvariate(mu, kappa) Vrne naključno število s plavajočo vejico z von Misesovo po­raz­de­li­tvi­jo ali krožno normalno po­raz­de­li­tvi­jo.
paretovariate(alpha) Vrne naključno število s plavajočo vejico s Paretovo po­raz­de­li­tvi­jo.
weibullvariate(alpha, beta) Vrne naključno število s plavajočo vejico z We­i­bul­lo­vo po­raz­de­li­tvi­jo.

Kako naključno izbrati elemente iz seznama

Če želite iz seznama izbrati več na­ključ­nih elementov, lahko uporabite funkcijo choices(seq, k=n) iz modula Python random, kjer je n število želenih na­ključ­nih elementov.

import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_elements)
python

V tem primeru uporabimo funkcijo choices(), da izberemo tri naključne elemente izmed my_list. Rezultati se vrnejo kot seznam treh na­ključ­nih elementov.

Kako premešati seznam

Funkcija shuffle() razporedi elemente seznama Python v na­ključ­nem vrstnem redu.

import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']
python

Upo­šte­vaj­te, da shuffle() spremeni sam seznam in ne vrne novega. Po uporabi shuffle() bo prvotni seznam v na­ključ­nem vrstnem redu.

Kako nastaviti vrednost semena

Ko uporabite random.seed() iz modula Python random za na­sta­vi­tev določene začetne vrednosti, se ini­ci­a­li­zi­ra generator na­ključ­nih številk, ki na podlagi te začetne vrednosti ustvari naključna števila. Če torej kasneje ponovno nastavite isto začetno vrednost, bo to v vaši apli­ka­ci­ji pov­zro­či­lo nastanek identične zaporedje na­ključ­nih številk.

import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random())  # Example output: 0.6394267984578837
print(random.random())  # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random())  # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random())  # Example output: 0.025010755222666936 (identical to the previous value)
python

Ko je vrednost semena na­sta­vlje­na, generira in izpiše naključna števila. Po­na­sta­vi­tev semena na isto vrednost povzroči, da se ponovno generira ista zaporedja na­ključ­nih števil. V tem primeru je vrednost semena 42. Dokler to seme ostane ne­spre­me­nje­no, se naključna števila lahko dosledno po­na­vlja­jo.

Go to Main Menu