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.

Enesekontroll (1 ülesanne)

Litsents

Icon for the Creative Commons Attribution 4.0 International License

Programmeerimine on loodud Eno Tõnisson, Tauno Palts, Merilin Säde, Kaarel Tõnisson jt poolt Creative Commons Attribution 4.0 International License litsentsi alusel, kui pole teisiti märgitud.

Jaga seda raamatut