# Kako uporabljati modul Python random

Modul Python `random` vam ponuja različne funkcije za **generiranje naključ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 generiranje naključnih številk in izvajanje naključnih operacij v programih. Vključuje različne funkcije za **generiranje psevdonaključnih številk**, ki se lahko uporabljajo v številnih aplikacijah, od simulacij do razvoja iger in kriptografskih nalog.

Pomembna značilnost naključnega modula je njegova sposobnost zagotavljanja ponovljivih rezultatov. Z določitvijo začetne vrednosti ali semena je mogoče ponoviti proces naključnega generiranja. To je koristno za testiranje, eksperimente in simulacije, ki zahtevajo dosledne naključne podatke.

## Kakšne so funkcije v naključnem modulu?

Pythonov modul random vsebuje različne metode za **generiranje in obdelavo naključnih številk**. V naslednji tabeli je prikazan pregled funkcij in njihovih lastnosti:

<table>
  <thead>
    <tr>
      <th>Ime funkcije</th>
      <th>Pojasnilo</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`seed(a=None, version=2)`</td>
      <td>Določi začetno vrednost (semena) za generator naključnih številk</td>
    </tr>
    <tr>
      <td>`getstate()`</td>
      <td>Vrne trenutno stanje generatorja naključnih številk kot objekt</td>
    </tr>
    <tr>
      <td>`setstate(state)`</td>
      <td>Ponastavi stanje generatorja naključnih številk z uporabo objekta stanja</td>
    </tr>
    <tr>
      <td>`getrandbits(k)`</td>
      <td>Vrne celo število s k biti</td>
    </tr>
    <tr>
      <td>`randrange(start, stop, step)`</td>
      <td>Ustvari naključno celo število iz določenega obsega.</td>
    </tr>
    <tr>
      <td>`randint(a, b)`</td>
      <td>Vrne naključno celo število v določenem obsegu</td>
    </tr>
    <tr>
      <td>`choice(seq)`</td>
      <td>Vrne naključni element iz dane zaporedja</td>
    </tr>
    <tr>
      <td>`choices(population, weights=None, *, cum_weights=None, k=1)`</td>
      <td>Ustvari seznam s k naključno izbranimi elementi iz populacije; možnost določitve verjetnosti</td>
    </tr>
    <tr>
      <td>`sample(k, population)`</td>
      <td>Ustvari seznam s k naključno izbranimi elementi iz populacije, brez podvajanja</td>
    </tr>
    <tr>
      <td>`shuffle(x)`</td>
      <td>Premeša elemente na seznamu v naključnem vrstnem redu.</td>
    </tr>
    <tr>
      <td>`random()`</td>
      <td>Vrne naključno število s plavajočo vejico med 0 in 1.</td>
    </tr>
    <tr>
      <td>`uniform(a, b)`</td>
      <td>Vrne naključno število s plavajočo vejico v določenem območju, vključno z mejnimi vrednostmi.</td>
    </tr>
    <tr>
      <td>`triangular(low, high, mode)`</td>
      <td>Ustvari naključno število s plavajočo vejico v trikotnem razponu porazdelitve.</td>
    </tr>
    <tr>
      <td>`betavariate(alpha, beta)`</td>
      <td>Vrne naključno število s plavajočo vejico iz beta porazdelitve.</td>
    </tr>
    <tr>
      <td>`expovariate(lambd)`</td>
      <td>Vrne naključno število s plavajočo vejico iz eksponentne porazdelitve.</td>
    </tr>
    <tr>
      <td>`gammavariate(alpha, beta)`</td>
      <td>Ustvari naključno število s plavajočo vejico iz gama porazdelitve.</td>
    </tr>
    <tr>
      <td>`gauss(mu, sigma)`</td>
      <td>Vrne naključno število s plavajočo vejico iz Gaussove porazdelitve.</td>
    </tr>
    <tr>
      <td>`lognormvariate(mu, sigma)`</td>
      <td>Ustvari naključno število s plavajočo vejico iz logaritmične normalne porazdelitve.</td>
    </tr>
    <tr>
      <td>`normalvariate(mu, sigma)`</td>
      <td>Vrne naključno število s plavajočo vejico iz normalne porazdelitve.</td>
    </tr>
    <tr>
      <td>`vonmisesvariate(mu, kappa)`</td>
      <td>Vrne naključno število s plavajočo vejico z von Misesovo porazdelitvijo ali krožno normalno porazdelitvijo.</td>
    </tr>
    <tr>
      <td>`paretovariate(alpha)`</td>
      <td>Vrne naključno število s plavajočo vejico s Paretovo porazdelitvijo.</td>
    </tr>
    <tr>
      <td>`weibullvariate(alpha, beta)`</td>
      <td>Vrne naključno število s plavajočo vejico z Weibullovo porazdelitvijo.</td>
    </tr>
  </tbody>
</table>

## Kako naključno izbrati elemente iz seznama

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

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

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

## Kako premešati seznam

Funkcija `shuffle()` razporedi elemente seznama Python v naključnem vrstnem redu.

```python
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']
```

Upoštevajte, da `shuffle()` spremeni sam seznam in ne vrne novega. Po uporabi `shuffle()` bo prvotni seznam v naključnem vrstnem redu.

## Kako nastaviti vrednost semena

Ko uporabite `random.seed()` iz modula Python random za **nastavitev določene začetne vrednosti**, se inicializira generator naključ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 aplikaciji povzročilo nastanek identične zaporedje naključnih številk.

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

Ko je vrednost semena nastavljena, generira in izpiše naključna števila. Ponastavitev semena na **isto vrednost** povzroči, da se ponovno generira ista zaporedja naključnih števil. V tem primeru je vrednost semena 42. Dokler to seme ostane nespremenjeno, se naključna števila lahko dosledno ponavljajo.


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/pythonov-modul-random/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/pythonov-modul-random/) for AI/LLM consumption.