Bevezetés a Random Modulba
Mi az a Random modul?
A Random modul a Python egyik beépített könyvtára, amely lehetővé teszi véletlenszerű számok generálását és véletlenszerű választások meghozatalát. Ez a modul nélkülözhetetlen olyan alkalmazásokban, ahol véletlenszerűségre van szükség, 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 és 1 közötti lebegőpontos szám
print(veletlenszam)
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 0.0 és 1.0 közötti lebegőpontos véletlenszámot generál (1.0 már nincs benne a tartományban).
# 0.0 és 1.0 közötti véletlenszámok generálása
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 és 10 közötti lebegőpontos szám
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
lehetoseg = ["kő","papír","olló"]
gep = random.choice(lehetoseg)
felhasznalo = input("Mit választasz? Kő, papír vagy olló? ")
if gep == felhasznalo:
print(f"A gép választása: {gep}, a te választásod: {felhasznalo}. Döntetlen!")
elif gep == "kő":
if felhasznalo == "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")
elif gep == "papír":
if felhasznalo == "olló":
print(f"A gép választása: {gep}. Nyertél!")
else:
print(f"A gép választása: {gep}. Vesztettél")
elif gep == "olló":
if felhasznalo == "kő":
print(f"A gép választása: {gep}. Nyertél!")
else:
print(f"A gép választása: {gep}. Vesztettél")
else:
print("Hibás adatot adtál meg!")
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