3.1 Zarošanās un operatori
Stundas uzdevums: Identificēt salīdzināšanas operatorus, izstrādāt koda zarošanās loģiku un pārbaudīt programmas lēmumu pieņemšanas plūsmu dažādās situācijās.
70 min plāns: Teorija un paraugs (~10 min) · 1. uzdevums (~15 min) - izmēģini salīdzināšanas operatorus · 2. uzdevums (~25 min) - uzraksti vecuma pārbaudītāju ar if/elif/else · 3. uzdevums (~20 min) - iztestē visus trīs zarus. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.
Pirms sāc: atver VS Code un izveido failu zarosanas.py. Atceries: Python blokus atdala ar atkāpi, tāpēc uzmani, lai kods zem if būtu nobīdīts pa labi.
Teorija: Datora lēmumu pieņemšana
Lai programma darītu dažādas lietas atkarībā no situācijas, tiek izmantota Branching (Zarošanās). Dators pieņem lēmumus, pārbaudot, vai apgalvojums ir True (Patiess) vai False (Aplams).
Salīdzināšanas operatori
==(Vienāds ar) /!=(Nav vienāds ar)>(Lielāks) /<(Mazāks)>=(Lielāks vai vienāds) /<=(Mazāks vai vienāds)
# Salīdzināšanas piemērs
print(5 == 5) # Izvada: True
print(10 < 2) # Izvada: False
print("Jānis" == "jānis") # Izvada: False (Reģistrjutīgs!)
if, elif un else struktūra
Lēmumu pieņemšanas ķēde darbojas no augšas uz leju. Tiklīdz atrodas pirmais True nosacījums, tas tiek izpildīts, bet pārējie tiek ignorēti.
if(Ja) - Pirmā un obligātā pārbaude.elif(Citādi ja) - Papildu pārbaudes (var būt vairākas).else(Citādi) - Izpildās tikai tad, ja visi iepriekšējie bija False.
# Zarošanās piemērs
punkti = 85
if punkti >= 90:
print("Izcili!")
elif punkti >= 70:
print("Labi!")
else:
print("Jāmācās vēl.")
Praktiskie uzdevumi
1. uzdevums -
Izmēģini salīdzināšanas operatorus
Beigās tu redzēsi, ka salīdzinājums vienmēr dod tikai True vai False.
- Ieraksti rindu
print(5 == 5)un palaid. - Ieraksti rindu
print(5 != 5)un palaid. - Ieraksti rindas ar
print(10 > 3)unprint(10 <= 3). - Pieraksti README.md failā, kurš izsaukums deva
Trueun kuršFalse. - Ieraksti
print(5 = 5)un palaid - tā ir apzināta kļūda. - Pieraksti, kāds kļūdas nosaukums parādījās, un salabo atpakaļ uz
==.
Gatavs, kad: tu vari pateikt, ka = piešķir vērtību, bet == salīdzina.
2. uzdevums -
Uzraksti vecuma pārbaudītāju
Beigās programma pateiks, vai lietotājs ir pilngadīgs, nepilngadīgs vai ievadīja muļķības.
- Ieraksti
vecums = int(input("Cik Tev gadu? ")). - Ieraksti
if vecums >= 18:un zem tā ar atkāpi izdrukāTu esi pilngadīgs.. - Pievieno
elif vecums > 0:un zem tā izdrukāTu vēl esi nepilngadīgs.. - Pievieno
else:un zem tā izdrukā kļūdas paziņojumu. - Pārbaudi, vai visas trīs izdrukas ir vienādi nobīdītas pa labi.
- Palaid un ievadi 20.
Gatavs, kad: ar 20 programma izdrukā tikai vienu rindu - Tu esi pilngadīgs.
3. uzdevums -
Iztestē visus trīs zarus
Beigās tu būsi pārliecinājies, ka katrs zars tiešām strādā.
- Palaid programmu ar vecumu 20 un pieraksti izvadi.
- Palaid ar vecumu 12 un pieraksti izvadi.
- Palaid ar vecumu -5 un pieraksti izvadi.
- Palaid ar vecumu 18 - pārbaudi, kurš zars nostrādā tieši uz robežas.
- Nomaini
>=uz>un palaid ar 18 vēlreiz. - Ieliec
>=atpakaļ. - Pieraksti vienu secinājumu: kāpēc robežvērtība jāpārbauda atsevišķi.
Gatavs, kad: tev ir pierakstītas četras dažādas izvades, un tu zini, ko dara = pie >.
Papildu uzdevums - Pievieno ceturto grupu
Ja pamatdarbs ir gatavs, sadali lietotājus sīkāk.
- Pievieno zaru senioriem:
elif vecums >= 65:. - Ieliec to pareizajā vietā - padomā, kurš nosacījums jāpārbauda pirmais.
- Palaid ar vecumu 70 un pārbaudi, kurš zars nostrādāja.
- Pārkārto zarus, ja nostrādāja nepareizais.
- Pieraksti, kāpēc
if/elifsecība ir svarīga.
Gatavs, kad: ar vecumu 70 programma izdrukā senioru ziņu, nevis Tu esi pilngadīgs.
Biežākās kļūdas (un kā tās labot):
- Viena vienādības zīme:
=nozīmē vērtības piešķiršanu (saglabāšanu), bet==nozīmē salīdzināšanu.# Slikti (izraisīs SyntaxError): if x = 5: # Labi: if x == 5: - IndentationError (Atkāpju kļūda): Python blokus strukturē ar atstarpēm. Kods zem
ifir jāiebīda tieši par vienu Tab (vai 4 atstarpēm).# Slikti: if True: print("Darbojas") # Labi: if True: print("Darbojas") - Pazudis kols (
:): Zarošanās atslēgvārdu (if,elif,else) rindiņai vienmēr jābeidzas ar kolu.
Koda piemērs: Zarošanās plūsma
# Lietotāja ievade
vecums = int(input("Cik Tev gadu? "))
# Zarošanās pārbaude
if vecums >= 18:
print("Tu esi pilngadīgs.")
elif vecums > 0:
print("Tu vēl esi nepilngadīgs.")
else:
print("Kļūda: Vecums nevar būt negatīvs vai nulle!")
Tu vēl esi nepilngadīgs.