Python – véletlen számok

Programozás Python

Ahogy korábban már írtam, a véletlen számok használatához importálni kell a random modult.
import random Utána a random modul utasításait tudjuk használni. A random a rendszeridőt használja a véletlen szám létrehozására. Néhány gyakrabban használt modulra fogok csak kitérni.

random.random() Ez 0 és 1 közötti valós véletlen számokat fog generálni, az 1 nincs benne! Ismerős lehet más programozási nyelvekből. Nyilván ha megszoroznám 10-zel, és venném az egész részét akkor 1-10-ig sorsolna ez is.

print(random.random())

random.randrange() Ennek 3 paramétere lehet: mettől, meddig, lépésköz.

Ha azt írjuk, hogy random.randrange(1,10,1) az azt jelenti, hogy a kisorsolt számok lehetnek: 1,2,3,4,5,6,7,8,9 Ebben az esetben az utolsó paraméter simán elhagyható, mivel 1 az alapértelmezett.
Ha csak 1db paramétert adok, akkor 0 és a megadott szám-1 közötti számokat sorsol ki.

print(random.randrange(1, 10, 1))
# kimenet lehet: 1,2,3,4,5,6,7,8,9
# röviden print(random.randrange(1, 10))
# egy db paraméterrel
print(random.randrange(10))
#kimenet lehet: 0,1,2,3,4,5,6,7,8,9
# sorsoljunk 1-10 közötti páratlan számokat!
print(random.randrange(1,10,2))
#kimenet lehet: 1,3,5,7,9

Ugyanúgy, ahogy a for ciklusnál is néztük, nem csak 1 lehet a lépésköz. Ha csak 1-10 közötti páratlan számokat akarok sorsolni akkor: random.randrange(1, 10, 2) kimenete: 1, 3, 5, 7, 9

random.randint() A randint abban különbözik a randrange-től, hogy a felső határ számokat is beleveszi a sorsolásba. A print(random.randint(1,10)) 1-10-ig sorsol véletlen számokat. Röviden fogalmazhatunk úgy is, hogy randrange(start, stop+1)

# dobókocka... nyilván 1-6ig sorsol
print(random.randint(1,6))

A Python random.randint() és random.randrange() függvényei hasonló célt szolgálnak (véletlen egész számot generálnak egy adott tartományból), de a tartomány megadásának módjában és a felső határhoz való viszonyukban különböznek.
A randint(a, b) generál egy véletlen egész számot, amely tartalmazza mindkét végpontot.
A randrange() szintaxisa megegyezik a Python beépített range() függvényével. Ez generál egy véletlen egész számot a megadott tartományból, de a felső határt nem tartalmazza!

1-10 közötti véletlen számok: random.randint(1, 10) vagy random.randrange(1, 11)

random.uniform(a, b): Valós számot ad vissza az a és b közötti tartományból.
Példa: random.uniform(1.5, 3.5)

random.gauss(mu, sigma):Normális eloszlású szám generálása.
Hasznos statisztikai szimulációkhoz.

shuffle() A random.shuffle() utasítással egy lista elemeit tudjuk összekeverni. A listát felülírja az új sorrenddel. Nézzük a már korábban is használt hetköznapos listánkat.

import random
napok = [„hétfő”, „kedd”, „szerda”,”csütörtök”,”péntek”]
random.shuffle(napok)
print(napok)

choice() A random.choice() utasítással egy véletlen elemet tudunk kiválasztani pl. egy listából.

import random
napok = ["hétfő", "kedd", "szerda","csütörtök","péntek"]
print(random.choice(napok))

choices() A random.choices utasítással több elemet lehet kiválasztani pl. egy listából. A kiválasztott elemek száma lehet több, mint a lista elemeinek száma. Tehát simán ki tudunk sorsolni 10-et is az 5 elemű listából. Hogy ne legyen ennyire egyszerű, még súlyozni is lehet az egyes elemeket. Tehát ha azt akarom, hogy nagyobb eséllyel sorsoljon pénteki napot, annak nagyobb „súlyt” adok meg.

sample() A random.sample() utasítással x elemszámú listát tudunk kiválasztani pl. egy listából. Ebben a példában 2 napot választunk ki az ötből. A k értéke 1 és a lista maximum elemszáma közötti lehet.

import random
napok = ["hétfő", "kedd", "szerda","csütörtök","péntek"]
random.shuffle(napok)
print(random.sample(napok, k=2))

seed() A random.seed() utasítással megadhatunk egy konkrét értéket a random-nak, ami a programunk tesztelésénél lehet hasnos, mert így mindig ugyanazt az értéket kapjuk.

random.seed(4)
print(random.random())
print(random.random())
print(random.random())

Példák

Lottósorsolás (5 szám 1–90 között, ismétlés nélkül)

Jelszógenerálás: A string modul segítségével betűket, számokat és írásjeleket is használunk.
A random.choices() ismétléssel választ karaktereket.

Frissítve: 2025.11.09.