Ce face random.randint() și random.randrange()
randint(a, b) returnează un întreg aleator între a și b, inclusiv ambele capete: randint(1, 6) simulează un zar. randrange() folosește regulile lui range(): capătul de sus nu este inclus și poți da un pas (de exemplu doar numere pare).
Modulul random este potrivit pentru jocuri, simulări și teste, dar nu pentru parole sau coduri de securitate; pentru acestea folosește modulul secrets. Cu random.seed() poți face rezultatele repetabile.
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Pentru randint: capetele intervalului, incluse. |
start, stop, step |
Pentru randrange: ca la range(). |
Ce returnează
Un int.
Exemple
Exemplul 1: Zaruri (rezultat repetabil cu seed)
import random
random.seed(2026)
print([random.randint(1, 6) for _ in range(10)])
print(random.randrange(0, 100, 2), random.randrange(10))
Rezultat
[1, 3, 5, 5, 6, 1, 2, 5, 5, 5]
52 9
Exemplul 2: Fără seed, rezultat diferit la fiecare rulare
import random
print("Ai dat:", random.randint(1, 6), "și", random.randint(1, 6))
Rezultat posibil (diferă la fiecare rulare)
Ai dat: 4 și 1
Greșeli frecvente
- Te aștepți ca
randrange(1, 6)să poată da 6. Capătul de sus nu este inclus; foloseșterandint(1, 6). - Generezi coduri de resetare a parolei cu
random. Valorile pot fi ghicite; foloseștesecrets.randbelow()sausecrets.token_urlsafe().
Comenzi înrudite
random.random() și random.uniform(): Generează un număr zecimal aleator: între 0 și 1, sau între două valori date.random.choice() și random.choices(): Alege aleator un element dintr-o listă, sau k elemente, cu ponderi opționale.random.seed(), getstate() și setstate(): Fixează punctul de pornire al generatorului, ca rezultatele aleatoare să se poată repeta.range(): Generează un șir de numere întregi, folosit mai ales în bucle for.