Rozdział 5 · Pobawmy się liczbami!

randint, randrange, uniform

Trzy podobne funkcje z trzema różnymi zasadami dotyczącymi granic zasięgu — i jednym klasycznym błędem, który pojawia się, gdy je pomieszasz.

randint(a, b) jest losową całością, obie granice są uwzględnione

01234567randint(1, 6)16
randint(1, 6) może zwrócić 1, może zwrócić 6 — obie granice są wliczone
randint.py
import random

kubik = random.randint(1, 6)   # może być 1, 2, 3, 4, 5 LUB 6
print(kubik)
Powszechny błąd „na jeden”
Jeśli potrzebujesz liczb od 1 do 5 (nie licząc 6), ale zapisz random.randint(1, 6) — program czasem źle zwraca 6. Obie granice randint() są włączone — warto o tym pamiętać za każdym razem.

randrange(start, stop, step) — jak range(), ale przypadkowo

W przeciwieństwie do randint(), u randrange() górna granica nie uwzględnione — całkiem jak w zwykłym range(), który szczegółowo przeanalizujemy w rozdziale 10. Dodatkowo jest opcjonalny krok:

randrange.py
import random

print(random.randrange(1, 7))       # od 1 do 6 włącznie – 7 NIE jest uwzględnione, analogowe randint(1, 6)
print(random.randrange(0, 10, 2))   # Losowa liczba parzysta: 0, 2, 4, 6 lub 8
FunkcjaGórna granicaKrok
randint(a, b)włączonanie, tylko sąsiednie całości
randrange(a, b)NIE UWZGLĘDNIONEnie (domyślnie 1)
randrange(a, b, step)NIE UWZGLĘDNIONEtak — można przeskakiwać

uniform(a, b) jest liczbą ułamkową losową

Działa jako randint(), ale dla float jest dowolną wartością ułamkową w zakresie, nie tylko liczbami całkowitym:

uniform.py
import random

temperatura = random.uniform(18.0, 24.0)
print(round(temperatura, 1))   # np. 21.3
Praktyka: randint, randrange, uniform
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →