Do premennej vieme priradiť nejaké číslo:
cislo = -5
Takýto príkaz priradenia pri každom spustení programu priradí do premennej to isté číslo. Ako by sme mohli urobiť, aby číslo bolo s každým spustením iné?
Použijeme na to funkciu random()
:
random()
Funkcia
random(300)
vyrobí náhodné číslo, pričom vyberá z rozmedzia od 0 po číslo v zátvorke. Najväčšie číslo však nikdy nedosiahneme.
A ako potom dáme náhodné číslo z funkcie do premennej?
cislo = random(10) # vygeneruj náhodné číslo od 0 do 10
print(cislo) # vypíše 5, inokedy 7 či 0
Po spustení tohto programu 3-krát po sebe v konzole uvidíme rôzne čísla (tvoje budú asi iné ako tieto, pretože náhoda):
2.7105140686
7.7266082786
5.9162845612
+, -, *, /
(ktoré vyrobia číselnú hodnotu). No a čísla vo výraze často zadávame priamo, ale použijeme premenné a funkcie, ktoré nám nejaké číslo vyrobia:vysledok = 1 / (1 + random(200)) # príklad výrazu s použitím funkcie
Funkcia random()
nám vyrobí náhodné desatinné číslo. Ak chceme číslo celé, môžeme použiť funkciu floor()
, ktorá dostane číslo a vyrobí z neho číslo zaokrúhlené nadol:
cislo = random(10) # vygeneruj náhodné číslo od 0 do 10
cislo = floor(cislo) # zaokrúhli nadol
print(cislo)
Celá operácia sa dá zapísať aj na jeden riadok (skladanie funkcií):
cislo = floor(random(10)) # najprv vygeneruj náhodné číslo od 0 do 10
print(cislo) # potom ho zaokrúhli nadol a priraď do premennej
Teraz by sa pri trojitom volaní vypísali takéto celé čísla (opäť - nie presne tieto, lebo sú náhodné):
2
9
1
Fukcia random()
môže mať aj dva prametre, potom prvý bude dolná, a ten druhý horná hranica intervalu, z ktorého sa bude číslo vyberať.
cislo = floor(random(100, 150)) # náhodné CELÉ číslo od 100 do 150 (okrem 150)
print(cislo)
Výsledky:
118
123
149
Samozrejme, že hranicami môžu byť aj záporné čísla. Len vždy musí byť uvedené najprv to menšie z nich.
cislo = floor(random(-10, 10)) # náhodné CELÉ číslo od -10 do 10
Úloha 1: Naprogramuj simulátor nočnej oblohy :) Na čiernom pozadí budú postupne pribúdať hviezdičky rôznej veľkosti. Pri stlačení ľubovoľného klávesu sa zmaže pozadie do náhodnej farby.
Úloha 2: Naprogramuj efekt mozaiky - rôznofarebné obdĺžniky sa budú kresliť do pravidelnej "siete".