random

Losowanie liczb i elementów: rzut kostką, wybór z listy, tasowanie i losowe próbki.

Na tej stronie

Przykład

#
Python
import random

print(random.randint(1, 6))
print(random.choice(["HTML", "CSS", "Python"]))
print(round(random.uniform(0, 100), 1))

tasks = ["1_1", "1_2", "1_3", "1_4"]
random.shuffle(tasks)
print(tasks)
Wynik
Kliknij Uruchom, żeby zobaczyć wynik.

Wynik jest za każdym razem inny, na przykład 4, Python, 37.2 i ['1_3', '1_1', '1_4', '1_2'].

Definicja i zastosowanie

#

Moduł random generuje liczby pseudolosowe. random.randint(a, b) zwraca liczbę całkowitą z zakresu od a do b, włącznie z obiema granicami. random.random() daje liczbę zmiennoprzecinkową od 0 do 1 (bez jedynki), a random.uniform(a, b) liczbę zmiennoprzecinkową z podanego przedziału.

Do pracy z kolekcjami służą choice() (jeden losowy element), choices() (kilka elementów, które mogą się powtarzać, opcjonalnie z wagami), sample() (kilka różnych elementów) i shuffle() (tasuje listę w miejscu i zwraca None).

Wywołanie random.seed(liczba) ustawia punkt startowy generatora, więc każde uruchomienie daje ten sam ciąg wyników. Przydaje się to w testach i przy odtwarzaniu błędów. Wyniki z random da się przewidzieć, dlatego do haseł i tokenów używaj modułu secrets.

Składnia

#
Składnia
import random

random.randint(a, b)
random.choice(sekwencja)
random.shuffle(lista)
random.sample(kolekcja, k)
random.seed(wartosc)

Więcej przykładów

#
Powtarzalne wyniki dzięki seed()
Python
import random

random.seed(2026)
first = [random.randint(1, 100) for _ in range(5)]

random.seed(2026)
second = [random.randint(1, 100) for _ in range(5)]

print(first == second)
Wynikzapisany wynik, możesz go sprawdzić
True

Konkretne liczby zależą od ziarna, ale dla tego samego ziarna ciąg jest zawsze identyczny.

Nagrody z wagami i losowanie bez powtórzeń
Python
import random

rewards = ["moneta", "klejnot", "karta"]
print(random.choices(rewards, weights=[70, 25, 5], k=3))

students = ["Ania", "Kuba", "Ola", "Iga", "Tomek"]
print(random.sample(students, 2))
Wynik
Kliknij Uruchom, żeby zobaczyć wynik.

Wynik jest losowy, np. ['moneta', 'moneta', 'klejnot'] i ['Ola', 'Ania']. choices() może powtórzyć element, a sample() nigdy tego nie robi.

Dobre praktyki

#
  • randint(1, 6) obejmuje obie granice, w przeciwieństwie do range(1, 6), które kończy się na 5.
  • shuffle() zmienia listę w miejscu i zwraca None, więc nie przypisuj jej wyniku: tasks = random.shuffle(tasks) to błąd.
  • Do haseł, kodów weryfikacyjnych i tokenów używaj modułu secrets, np. secrets.token_hex(16).

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.