8 Tingimuslause tingimuslause sees
Jätkame varasemat programmi, kus küsitakse PIN-koodi ja õige koodi korral “sisenetakse” pangaautomaati. Mis aga saab edasi? Tundub, et programm peab valikute põhjal hargnema. Teeme nüüd nii, et pangaautomaati sisenedes näidatakse, mitu eurot pangakontol on, ning küsitakse, mitu eurot soovitakse välja võtta. Kui kasutaja soovib välja võtta rohkem raha, kui on pangakontol, siis teavitatakse kasutajat, et see pole võimalik.
Eelnevalt oli meil olemas pangaautomaati sisenemise programm:
sisestatud_pin = input("Sisesta PIN-kood: ") if sisestatud_pin == "1234": print("Sisenesid pangaautomaati!") else: print("Vale parool! Ligipääs keelatud!")
Esiteks võiks programmi alguses kasutusele võtta muutuja, mille väärtus näitab, kui palju pangakontol raha on. Näiteks teeme nii, et algselt on kasutaja pangakontol 100 eurot:
kontoseis = 100
Nüüd teeme programmiosa, mis töötab siis, kui kasutaja on automaati sisse saanud. Selles osas väljastatakse ekraanile pangakontol olev summa ning küsitakse, mitu eurot soovitakse välja võtta. Küsitud väljavõetava raha teisendame seekord kohe täisarvutüüpi (int
) väärtuseks:
print("Sisenesid pangaautomaati! Pangakontol on " + str(kontoseis) + " eurot.") print("Sisesta, mitu eurot soovid välja võtta:") soovitud_raha = int(input())
Seejärel oleks vaja kontrollida, et väljavõetav rahasumma oleks väiksem või võrdne kontol olevaga. Kui nii on, siis võetakse vastav summa kontolt maha. Kui ei ole, siis väljastatakse vastav veateade:
if soovitud_raha <= kontoseis: kontoseis = kontoseis - soovitud_raha print("Välja võetud: " + str(soovitud_raha) + " eurot. Ärge unustage raha masinast ära võtta!") else: print("Kontol ei ole nii palju raha!")
Varasemalt oleme juba näinud, et muutujale saab anda väärtuse tehtega, milles kasutame sedasama muutujat ennast (siin kontoseis = kontoseis - soovitud_raha
). Muutuja uue väärtuse arvutamine vana põhjal on isegi nii levinud, et kasutusel on tehtemärgid (nt +=
, -=
, *=
, /=
), mis võimaldavad seda lühemalt kirja panna.
Nii saaks asendada vastava rea eeltoodud programmis järgmisega:
kontoseis -= soovitud_raha
Kõige lõpuks võime veel ekraanile väljastada, kui palju raha pangakontole jäi:
print("Pangakontol on nüüd: " + str(kontoseis) + " eurot.")
Kui nüüd lisada need read algse programmi if-osa sisse, siis saame kokkuvõttes järgneva programmi. Märgiga #
tähistatakse programmis kommentaare, mis on inimeste jaoks ja mida Python ei arvesta. Kõik, mis samal real #-
märgile järgneb, on kommentaar.
Näiteprogramm. Konto seisuga pangaautomaat
kontoseis = 100 sisestatud_pin = input("Sisesta PIN-kood: ") if sisestatud_pin == "1234": print("Sisenesid pangaautomaati! Pangakontol on " + str(kontoseis) + " eurot.") print("Sisesta, mitu eurot soovid välja võtta:") soovitud_raha = int(input()) if soovitud_raha <= kontoseis: kontoseis = kontoseis - soovitud_raha #kontoseisu väärtus väheneb print("Raha välja võetud: " + str(soovitud_raha) + " eurot.") else: print("Kontol ei ole nii palju raha!") print("Pangakontol on järgi: " + str(kontoseis) + " eurot.") else: print("Vale parool! Ligipääs keelatud!")
Mõtle selle programmi käitumine läbi ja katseta programmi.