random
Losowanie liczb i elementów: rzut kostką, wybór z listy, tasowanie i losowe próbki.
Przykład
#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 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
#import random
random.randint(a, b)
random.choice(sekwencja)
random.shuffle(lista)
random.sample(kolekcja, k)
random.seed(wartosc)Więcej przykładów
#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)Konkretne liczby zależą od ziarna, ale dla tego samego ziarna ciąg jest zawsze identyczny.
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 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 dorange(1, 6), które kończy się na 5.shuffle()zmienia listę w miejscu i zwracaNone, 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
#- mathModuł z funkcjami matematycznymi: pierwiastki, zaokrąglanie, potęgi, logarytmy i stałe.
- range()Tworzy ciąg liczb całkowitych, najczęściej do pętli for.
- list()Tworzy listę, pustą albo z elementów innego obiektu iterowalnego.
- itertoolsNarzędzia do pracy z iteratorami: łączenie, grupowanie, kombinacje i nieskończone ciągi.
- timeWstrzymywanie programu, znaczniki czasu i dokładny pomiar czasu wykonania kodu.
Widzisz błąd albo brakuje przykładu? Napisz do nas.