random — generowanie liczb losowych¶
Ten moduł implementuje generator liczb pseudolosowych (PRNG). PRNG jest 32-bitowym generatorem LCG w stylu Yasmarang; przy pierwszym imporcie pobiera jedno 32-bitowe ziarno z tego samego źródła sprzętowego, którego używa os.urandom(), a każda kolejna liczba jest deterministyczną funkcją tego ziarna.
Ostrzeżenie
Wynik nie jest bezpieczny kryptograficznie – algorytm jest przewidywalny na podstawie krótkiej sekwencji wyjściowej, a początkowe ziarno niesie tylko 32 bity entropii. Do materiału kluczowego, tokenów sesji, soli haseł lub innych zastosowań wrażliwych na bezpieczeństwo wywołuj zamiast tego os.urandom().
Informacja
Dla przedziałów stosowana jest następująca notacja:
() to nawiasy przedziału otwartego i nie obejmują swoich punktów krańcowych. Na przykład (0, 1) oznacza większe niż 0 i mniejsze niż 1. W notacji zbiorów: (0, 1) = {x | 0 < x < 1}.
[] to nawiasy przedziału domkniętego, które obejmują wszystkie swoje punkty graniczne. Na przykład [0, 1] oznacza większe lub równe 0 i mniejsze lub równe 1. W notacji zbiorów: [0, 1] = {x | 0 <= x <= 1}.
Funkcje dla liczb całkowitych¶
- random.randrange(start: int, stop: int | None = None, step: int = 1) int¶
Pierwsza postać zwraca losową liczbę całkowitą z zakresu [0, stop). Druga postać zwraca losową liczbę całkowitą z zakresu [start, stop). Trzecia postać zwraca losową liczbę całkowitą z zakresu [start, stop) w krokach co step. Na przykład wywołanie
randrange(1, 10, 2)zwróci liczby nieparzyste od 1 do 9 włącznie.
Funkcje dla liczb zmiennoprzecinkowych¶
Pozostałe funkcje¶
- random.seed(n: int | None = None, /) None¶
Inicjalizuje moduł generatora liczb losowych ziarnem n, które powinno być liczbą całkowitą. Gdy nie przekazano żadnego argumentu (lub
None), PRNG jest ponownie zaszczepiany z tego samego źródła specyficznego dla portu, którego używaos.urandom().
- random.choice(sequence: Any) Any¶
Wybiera i zwraca losowo jeden element z sequence (krotki, listy lub dowolnego obiektu obsługującego operację indeksowania).