Véletlen számok generálása
Ha úgy érzed, hogy elakadtál, és több segítségre van szükséged, keress bizalommal! Kedvező árú magánórák keretében szívesen segítek elsajátítani a programozás alapjait.
Magánóra ajánlatokFIGYELEM! A számítógépeket arra alkották meg, hogy az utasításokat pontosan, egyformán hajtsák végre minden pillanatban. Ennek okán a géppel történő véletlen szám generálás mindig nehéz feladat. A python random modulja, amiről ez a cikk szól, egy pseudo-random generátor, a kimenete kellően véletlenszerű a hétköznapi dolgokhoz (pl.: kockadobások imitálása), azonban nem elég véletlenszerű ahhoz, hogy kritikus biztonsági funkciókhoz használjuk! Sose használd ezt a modult kritikus biztonsági megoldásokhoz, pl.: aláíró kulcsok generálásához, mert a számok megjósolhatósága komoly biztonsági kockázatot jelenthet! Ezekhez használd a megfelelő kriptografikai modulokat.
Egyes programokban előfordulhat, hogy szükségünk van véletlen számok generálására -- például egy kvízkérdés válaszlehetőségeinek az összekeveréséhez, egy kockadobás szimulálásához, stb. Ennek a megoldására a python random modulja nyújtja a legegyszerűbb megoldást. Ha használni szeretnénk, először be kell importálnunk azt - amihez a programunk elején el kell helyeznünk az alábbi kódsort:
import random
Ezt követően már használhatjuk is a random modul eljárásait és függvényeit!
Egész szám generálása
Egész számok generálására a legpraktikusabb a modul randrange függvényének használata. Ennek megadhatjuk, hogy melyik számtartományból szeretnénk visszakapni egyet, így a használata nagyon könnyű! Fontos azonban megjegyezni, hogy a megadott tartomány alsó tagja a legkisebb olyan szám, amit már megkaphatunk - a felső határa viszont MÁR NEM része a visszaadott számoknak. Ez tehát azt jelenti, hogy ha egy dobókocka dobást szeretnénk szimulálni, azaz 1 és 6 közötti értékeket szeretnénk visszakapni, akkor a randrange függvényt az 1 és a 7 paraméterekkel kell meghívnunk, pl.: így
import random
dobas = random.randrange(1,7)
print("A dobásod eredménye:", dobas)
Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9
LineFlame fejlesztőeszközével!
Random listaelem kiválasztása
Előfordulhat olyan eset is, amikor egy listából szeretnénk véletlenszerűen kiválasztani egy elemet. Erre a choice utasítást használhatjuk, amelynek egyetlen paraméterként átadhatunk egy listát, amelyből az elemet ki szeretnénk választani. Íme egy példa ennek a használatára:
import random
nevek = ["Anna", "Berta", "Cili", "Dorina"]
print("Az első játékos:", random.choice(nevek))
Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9
LineFlame fejlesztőeszközével!
Listák sorbarendezése
Amennyiben egy listát, például kérdéseket, vagy válaszlehetőségeket szeretnénk véletlenszerű sorrendbe tenni, úgy a shuffle utasítást érdemes használnunk. Ennek egyetlen paramétere szintén egy lista, ezt a listát fogja véletlenszerű sorrendbe átrendezni. Fontos, hogy az utasítás az eredeti listát rendezi át, nem készít belőle másolatot! Így nem szükséges ismét letárolnunk sem. Íme egy példa a használatára:
import random
szavak = ["alma", "ablak", "asztal", "ananász"]
random.shuffle(szavak)
print(szavak)
Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9
LineFlame fejlesztőeszközével!
Bár a random modul ennél jóval több funkcióval rendelkezik, ez a néhány alapvető eszköz elégséges a legtöbb feladat megoldásához.