Kolmapäev, 5. aprill 2017

Python - tsükkel ja juhuslikud arvud

Vahel on vaja mingeid tegevusi teha korduvalt. Näiteks soovime, et programm kirjutaks meile soovitud arv kordi teksti "Python on tore"

tekst = "Python on tore"
i = 0
while i < 3:
    print(tekst)
    i = i + 1

Kordusi saab Pyhtonis kõige lihtsamalt kirja panna while-tsükli abil. Pööra tähelepanu sellele, et while rida lõpeb jällegi kooloniga ning kirjeldatud tsükkel on trepitud. Kindlasti tuleb lisada tsüklisse ka muutuja i muutumine (antud juhul suureneb muutuja iga tsükli sammuga 1 võrra i = i + 1) ja muutuja i enne tsükli algust defineerida ehk anda talle mingi algväärtus, mis tsükli töö käigus muutuma hakkab.


Ülesanne 7
Täienda ülalolevat koodi nii, et teksti saaks sisestada programmi kasutaja. Samuti peaks kasutaja saama sisestada korduste arvu (praegu näites on selleks arvuks 3).


Juhuslik arv

Vahel on vaja, et programm leiaks meile juhusliku arvu mingis kindlas vahemikus (Scratchis oli selleks plokk "juhuarv 1 kuni 10").
Pythonis on olemas funktsioon randint (arv1, arv2), mis genereerib meile juhusliku täisarvu vahemikus arv1 kuni arv 2. Selle funktsiooni kasutamiseks on aga vaja programmile teada anda, selleks tuleb programmi algusesse lisada rida:

from random import randint

Kui soovime, et muutuja väärtuseks saaks juhuslik täisarv vahemikus 1 - 20, siis pannakse see Pythonis kirja nii:

arv = randint(1, 20)

Katseta järgmist koodilõiku. Kas iga programmi käivituse korral prinditakse ekraanile uus arv?

from random import randint
arv = randint(1,20)

print(arv)


Kui lisame juhuarvu genereerivale programmile while-tsükli, siis saame näiteks ekraanile printida mitu juhuarvu. Katseta järgmist programmilõiku, et veenduda randint funktsiooni töös.

from random import randint
i = 0
while i < 3:
    arv = randint(1,20)
    print(arv)

    i = i+1



Ülesanne 8 - arvu äraarvamise mäng
Teeme mängu, kus arvuti genereerib juhusliku arvu (näiteks vahemikus 1 - 20) ning kasutaja peab selle siis ära arvama. Programm annab arvamiseks vihjeid, kas kasutaja sisestatud arv on suurem või väiksem programmi poolt mõeldud juhuslikust arvust.

Proovi alguses ise programmi kirjutada, kui jääd hätta, siis leiad mõtteid siit

== on võrdne (kaks võrdusmärki järjest, ainult üks võrdusmärk oleks omistamine!)
< on väiksem
<= on väiksem või võrdne
> on suurem
>= on suurem või võrdne
!= on mittevõrdne


Ülesanne 8 (täiendus)
Täienda mängu nii, et programm loeks ka katseid, mis õige arvu arvamiseks kuluvad ning väljastaks õige arvu sisestamisel ka selleni jõudmiseks kulunud katsete arvu.

Ülesanne 9 - matemaatika mäng
Tee matemaatika õppimiseks mäng, kus
  1. Programm küsib kasutajalt, millistes piirides ehk kui suurte arvudega ta soovib arvutada (juhuarvude vahemiku piirid),
  2. programm küsib kasutajalt, mitu tehet ta soovib teha, 
  3. genereerib iga kord uued juhuslikud arvud, 
  4. laseb kasutajal sisestada nende arvude summa,
  5. kontrollib, kas vastus on õige ja väljastab vastava teate,
  6. väljastab programmi lõpus, mitu tehet õigesti vastati.
Täiendus matemaatikamängule
  • Programm väljastab vale vastuse korral vastava teate ja ka õige vastuse
  • Programm väljastab lõpus õigete vastuste %


Pilt: http://www.agent-x.com.au/wp-content/uploads/2011/06/Perfect-Programmer-dfe194b-e8d3b11-b960bd5.jpg