Bevezetés a Random Modulba
Mi az a Random modul?
A random a Python standard könyvtárának egyik modulja, amellyel pszeudovéletlen számokat generálhatunk és véletlenszerű választásokat végezhetünk. Hasznos például játékokban, szimulációkban vagy adatok véletlenszerű mintavételezésében.
Véletlenszám generálás
Különböző típusú véletlen számok előállítása
Véletlenszerű választás
Elemek véletlenszerű kiválasztása listákból
Lista keverés
Listák elemeinek véletlenszerű átrendezése
A Random modul importálása
A random modul használatához először importálnunk kell azt a Python programunkba:
# A random modul importálása
import random
# Most már használhatjuk a random modul függvényeit
veletlenszam = random.random() # 0.0 <= veletlenszam < 1.0
print(veletlenszam)
random pszeudovéletlen értékeket ad. Játékokhoz és gyakorláshoz megfelelő, de jelszavakhoz, tokenekhez vagy más biztonsági célhoz a secrets modul való.Próbáld ki!
A véletlenszámok tulajdonságai
Nézzük meg, milyen tulajdonságai vannak a generált véletlenszámoknak:
# Generáljunk 10 véletlenszámot és vizsgáljuk meg őket
import random
# Lista a számok tárolásához
szamok = []
# 10 véletlenszám generálása
for _ in range(10):
szam = random.random()
szamok.append(szam)
print(f"Generált szám: {szam:.4f}")
# Statisztikák kiszámítása
atlag = sum(szamok) / len(szamok)
minimum = min(szamok)
maximum = max(szamok)
print(f"\nStatisztikák:")
print(f"Átlag: {atlag:.4f}")
print(f"Minimum: {minimum:.4f}")
print(f"Maximum: {maximum:.4f}")
Generált számok eloszlása
Alap Függvények
random() - Lebegőpontos véletlenszám
A random() függvény a 0.0 <= x < 1.0 tartományból ad vissza lebegőpontos pszeudovéletlen számot: a 0.0 lehetséges, az 1.0 már nem.
# Véletlenszámok generálása a 0.0 <= x < 1.0 tartományból
import random
# Alap véletlenszám
szam = random.random()
print(f"Véletlenszám: {szam}")
# Példa: Véletlenszám skálázása más tartományra (pl. 1-10 között)
skalazott = 1 + (random.random() * 9) # 1.0 <= skalazott < 10.0
print(f"Skálázott véletlenszám: {skalazott}")
Próbáld ki!
randint() - Egész véletlenszám
A randint(a, b) függvény két szám közötti véletlenszerű egész számot generál, ahol mindkét határérték beletartozik a lehetséges értékek közé.
# Egész szám generálása megadott határok között
import random
# Dobókocka szimulálása (1-6 közötti szám)
dobas = random.randint(1, 6)
print(f"A dobókocka eredménye: {dobas}")
# Nagyobb tartomány (pl. 1-100)
szam = random.randint(1, 100)
print(f"Véletlenszám 1 és 100 között: {szam}")
Dobókocka szimuláció
choice() - Véletlenszerű elem kiválasztása
A choice() függvény egy véletlenszerű elemet választ ki egy listából vagy más sorozatból.
# Véletlenszerű elem kiválasztása listából
import random
szinek = ['piros', 'kék', 'zöld', 'sárga', 'fehér']
valasztott_szin = random.choice(szinek)
print(f"Véletlenszerűen választott szín: {valasztott_szin}")
gyumolcsok = ['alma', 'körte', 'banán', 'narancs']
valasztott_gyumolcs = random.choice(gyumolcsok)
print(f"Véletlenszerűen választott gyümölcs: {valasztott_gyumolcs}")
Lista elem választó
Gyakorlati Példák
Kő-Papír-Olló Játék
Egy egyszerű kő-papír-olló játék megvalósítása a random modul használatával:
# Kő-Papír-Olló játék
import random
lehetosegek = ["kő", "papír", "olló"]
felhasznalo = input("Mit választasz? Kő, papír vagy olló? ").strip().lower()
if felhasznalo not in lehetosegek:
print("Hibás adatot adtál meg!")
else:
gep = random.choice(lehetosegek)
if gep == felhasznalo:
print(f"A gép választása: {gep}. Döntetlen!")
elif (felhasznalo == "kő" and gep == "olló") or \
(felhasznalo == "papír" and gep == "kő") or \
(felhasznalo == "olló" and gep == "papír"):
print(f"A gép választása: {gep}. Nyertél!")
else:
print(f"A gép választása: {gep}. Vesztettél!")
Játssz a számítógép ellen!
Kincskereső Játék
Találd meg a kincset egy 5x5-ös területen! A program jelzi, hogy merre kell továbbmenni:
# Kincskereső játék
import random
# Véletlenszerű kincs helye (X, Y)
kincs_x = random.randint(1, 5)
kincs_y = random.randint(1, 5)
print("Találd meg a kincset egy 5x5-ös rácson!")
tipp_x = -1
tipp_y = -1
probalkozasok = 0
# Addig próbálkozik, amíg meg nem találja a kincset
while tipp_x != kincs_x or tipp_y != kincs_y:
tipp_x = int(input("Add meg az X koordinátát (1-5): "))
tipp_y = int(input("Add meg az Y koordinátát (1-5): "))
probalkozasok += 1
if tipp_x < kincs_x:
print("A kincs jobbra van.")
elif tipp_x > kincs_x:
print("A kincs balra van.")
if tipp_y < kincs_y:
print("A kincs feljebb van.")
elif tipp_y > kincs_y:
print("A kincs lejjebb van.")
print(f"Gratulálok! Megtaláltad a kincset {probalkozasok} próbálkozás után!")
Keresd meg a kincset!
Próbálkozások száma: 0