Selles peatükis:
- uurime, kuidas programmi otsustama panna,
- saad teada, mis on tingimus ja tingimuslause,
- saad teada, milliseid operaatoreid võrdluseks saab kasutada,
- saad teada, mis on boolean,
- saad teada, mis on elif ja mille poolest see erineb else-st,
- koostad paar lõbusat halloweeni-teemalist programmi.
Tingimus
Seekord teeme programmi, mis peab otsustama kuidas vastata. Vastused sõltuvad sellest, kuidas kasutaja vastab ehk programmi kirjutatakse TINGIMUS. Tingimus võrdleb olemasolevat infot ja otsustab selle põhjal kuvatava vastuse. Kuna on Halloweeni-aeg, siis on seekord harjutused sellest inspireeritud.

Operaatorid
Tingimuste jaoks kasutatakse operaatoreid. Mäletad, operaatorid olid +, –, * ja /. Võrdlemiseks kasutatakse operaatorit ==, mis kontrollib kas kaks infoühikut on võrdsed või mitte.
Teeme kohe proovi, ava Shell-aken ja katseta! Esmalt loo muutuja ja määra selle väärtus:
vanus = 10
Nüüd kontrolli kas muutuja väärtus võrdub näiteks 12-ga:
vanus == 12
Saan tulemuseks False ehk muutuja age väärtus ei ole võrdne 12-ga.
Näide:
vanus = 10 vanus == 12 False
Veel operaatoreid, mida võib erinevatel puhkudel vaja minna:
== on võrdne
!= ei ole võrdne
< väiksem kui
> suurem kui
<= väiksem kui või võrdne
>= suurem kui või võrdne

Boolean ehk tõeväärtustüüp
Boolean* ehk tõeväärtus on selline andmetüüp, millel on ainult kaks võimalikku väärtust: TÕENE (True) ja VÄÄR (False).
*Matemaatik George Boole järgi.
Tingimuslaused
Selleks, et programmeerimisel kasutada tingimusi, tuleb koostada tingimuslaused (conditionals). Tingimuslausesse kirjutatakse tingimus, mille väärtust tõene/väär saab kontrollida.
Harud ehk branches
Tingimuslauseid saab kujutada harulise skeemiga, inglise keeles nimetataksegi seda branches ehk oksaharud.

IF
Üheks tähtsaimaks tingimuslauseks on IF, mis ütleb, et KUI tingimus on täidetud (true) siis tegutse nii, kui mitte (false) siis tegutse teisiti.
Harudega skeem näeb välja nii:

Proovime!
- Loo uus fail (CTRL+N) ja salvesta see.
- Nüüd kirjuta kood, millega määratleme kasutaja sisestatava vastuse:
kasutaja_vastus = input("Kas sulle meeldivad kummitused? (Vasta jah või ei)")
Järgmisele reale läheb tingimuslause. Pane tähele taandridasid, need tekivad automaatselt!
Else eest saad taande kustutada Delete klahviga. Taanet saab ise teha TAB-klahviga.

if kasutaja_vastus == "jah": print("Boooo! Sa meeldid kummitustele ka!") else: print("Muhahahahaaaa, ka sina ei meeldi kummitustele!")
Tervik näeb välja nii:

Salvesta ja käivita F5-ga.
ELIF
ELIF on lühidalt ELSE-IF (muul juhul kui…). ELIF käib alati pärast IF-i ja käivitub, kui IF tingimuslauses olev tingimus on täidetud. ELIF sisaldab ka oma tingimust, mida kontrollitakse.
Mis on vahet ELSE ja ELIF?
ELSE – ei ole väga täpne, see kontrollib IF-tingimuslauses olevat tingimust ja kui see pole tõene, siis järelikult kehtib ükskõik milline muu tingimus.
Näiteks: Eelmisel harjutuses küsis programm kasutajalt kas talle meeldivad kummitused. Sellele oli kaks võimalikku vastust – jah ja ei. Programm andis vastuse jah puhul vastuseks „Boooo! Sa meeldid kummitustele ka!“.
Kui kasutaja vastas midagi muud (kas „ei“ või ükskõik mida muud), kuvati kasutajale vastusena ELSE-ga määratletud vastus.
ELIF – annab oluliselt täpsemad võimalused otsustamisel.
Näiteks saame täiendada eelmist harjutust ja anda kasutajale rohkem vastusevõimalusi. Skeemina võiks seda kujutada nii:

Täiendame eelmise programmi koodi:

kasutaja_vastus = input("Kas sulle meeldivad kummitused?(Vasta jah, ei, vahel või ainult sõbralikud)") if kasutaja_vastus == "jah": print("Boooo! Sa meeldid kummitustele ka!") elif kasutaja_vastus == "vahel": print("Agrhhh! Vahel pead pimedas ettevaatlik olema!") elif kasutaja_vastus == "ainult sõbralikud": print("Hõõõ! Sõbralikke kummitusi ei ole olemas!") elif kasutaja_vastus == "ei": print("Muhahahahaaaa, ka sina ei meeldi kummitustele!") else: print("Rrrrrr! Sinu inimlik rumalus on hämmastav!")

Väljakutse 1
Tee nüüd ise mõni taoline programm! Näiteks võid küsida kasutajalt „Komm või pomm!“ ning määrata valikud sõltuvalt sellest kas kasutaja vastab komm või pomm või väike viiner või midagi muud. Ja lase sõbral proovida vastuseid anda, sest nii on hulga lõbusam.
Väljakutse 2
Mäletad varasemalt koostatud programmi „Küsi Montylt“, mis andis kasutajale juhuvastuse? Kas suudad välja nuputada, kuidas tekitada taoline random-valik oma programmi ELSE avaldisse?
Programm oli tookord selline:

Väljakutse 2 lahendus

import random kasutaja_vastus = "" vastused = ["Rrrrrr! Sinu inimlik rumalus on hämmastav!", "Pähh! Oled nii rumal!", "Sa oled üks äge tüüp!", "Kle, äkki proovid uuesti?", "Kas keegi ütles komm või pomm?!?!", "Ma hakkan juba väsima...", "No kaua võib???"] while kasutaja_vastus != "stop": kasutaja_vastus = input("Kas sulle meeldivad kummitused?(Vasta jah, ei, vahel või ainult sõbralikud. Lõpetamiseks vasta stop.)") if kasutaja_vastus == "stop": print("Kabooom! Kohtumiseni keskööl!") elif kasutaja_vastus == "jah": print("Boooo! Sa meeldid kummitustele ka!") elif kasutaja_vastus == "vahel": print("Agrhhh! Vahel pead pimedas ettevaatlik olema!") elif kasutaja_vastus == "ainult sõbralikud": print("Hõõõ! Sõbralikke kummitusi ei ole olemas!") elif kasutaja_vastus == "ei": print("Muhahahahaaaa, ka sina ei meeldi kummitustele!") else: print(vastused[random.randrange(1,len(vastused)-1)]) print("")
Kasutatud allikad:
- L. Stowell, R. Dickins „Coding for Beginners using Python“
- TÜ „Programmeerimise algkursus“ materjalid: https://courses.cs.ut.ee/MTAT.03.100/2012_fall/uploads/opik/index.html
- Pildid: Pixabay.com