random — Zufallszahlen erzeugen

Dieses Modul implementiert einen Pseudozufallszahlengenerator (PRNG). Der PRNG ist ein 32-Bit-LCG im Yasmarang-Stil; beim ersten Import zieht er einen 32-Bit-Startwert aus derselben Hardwarequelle, die os.urandom() verwendet, und jede nachfolgende Zahl ist eine deterministische Funktion dieses Startwerts.

Warnung

Die Ausgabe ist nicht kryptografisch sicher – der Algorithmus ist aus einer kurzen Ausgabesequenz vorhersagbar, und der anfängliche Startwert trägt nur 32 Bit Entropie. Verwenden Sie für Schlüsselmaterial, Sitzungstokens, Passwort-Salts oder jede andere sicherheitsrelevante Anwendung stattdessen os.urandom().

Bemerkung

Für Intervalle wird die folgende Notation verwendet:

  • () sind offene Intervallklammern und schließen ihre Endpunkte nicht ein. Zum Beispiel bedeutet (0, 1) größer als 0 und kleiner als 1. In Mengennotation: (0, 1) = {x | 0 < x < 1}.

  • [] sind geschlossene Intervallklammern, die alle ihre Grenzpunkte einschließen. Zum Beispiel bedeutet [0, 1] größer oder gleich 0 und kleiner oder gleich 1. In Mengennotation: [0, 1] = {x | 0 <= x <= 1}.

Funktionen für Ganzzahlen

random.getrandbits(n: int) int

Gibt eine Ganzzahl mit n zufälligen Bits zurück (0 <= n <= 32).

random.randint(a: int, b: int) int

Gibt eine zufällige Ganzzahl im Bereich [a, b] zurück.

random.randrange(start: int, stop: int | None = None, step: int = 1) int

Die erste Form gibt eine zufällige Ganzzahl aus dem Bereich [0, stop) zurück. Die zweite Form gibt eine zufällige Ganzzahl aus dem Bereich [start, stop) zurück. Die dritte Form gibt eine zufällige Ganzzahl aus dem Bereich [start, stop) in Schritten von step zurück. Zum Beispiel gibt der Aufruf randrange(1, 10, 2) ungerade Zahlen zwischen 1 und 9 einschließlich zurück.

Funktionen für Gleitkommazahlen

random.random() float

Gibt eine zufällige Gleitkommazahl im Bereich [0.0, 1.0) zurück.

random.uniform(a: float, b: float) float

Gibt eine zufällige Gleitkommazahl N zurück, sodass a <= N <= b für a <= b und b <= N <= a für b < a gilt.

Weitere Funktionen

random.seed(n: int | None = None, /) None

Initialisiert das Zufallszahlengenerator-Modul mit dem Startwert n, der eine Ganzzahl sein sollte. Wenn kein Argument (oder None) übergeben wird, wird der PRNG aus derselben portspezifischen Quelle neu initialisiert, die os.urandom() verwendet.

random.choice(sequence: Any) Any

Wählt zufällig ein Element aus sequence (Tupel, Liste oder ein beliebiges Objekt, das die Indexoperation unterstützt) aus und gibt es zurück.