3. tēma: 3.2 Loģiskie operatori

Tavs šīs stundas izaicinājums: Pielietot Logical operators (Loģiskos operatorus), lai optimizētu kodu un aizstātu sarežģītus, Nested if (Ligzdotos) nosacījumus ar vienkāršākām un lasāmākām izteiksmēm.

2.4.13. Lieto mainīgos, datu tipus un pamatkonstrukcijas.
2.4.14. Izmanto algoritmu vadības struktūras (sazarojumi, cikli).

Teorija: Loģisko izteiksmju apvienošana

Logical operators (Loģiskie operatori) ļauj datoram izvērtēt vairākus nosacījumus vienlaicīgi. Tas palīdz izvairīties no gara un nepārskatāma koda.

1. Operators "and" (UN)

Atgriež True (Patiess) tikai tad, ja pilnīgi visi nosacījumi ir patiesi.

# Izpildīsies tikai tad, ja spēlētājam ir pietiekams līmenis UN pietiekami daudz zelta
if limenis >= 10 and zelts >= 50:
    print("Priekšmets iegādāts!")

2. Operators "or" (VAI)

Atgriež True, ja vismaz viens no nosacījumiem ir patiess.

# Izpildīsies, ja ievadīts viens vai otrs atslēgvārds
if ievade == "stop" or ievade == "beigt":
    print("Spēle pārtraukta.")

3. Operators "not" (NE)

Apgriež Boolean (Patiesumvērtības) stāvokli pretējā. True kļūst par False un otrādi.

# Izpildīsies, ja spēle NAV beigusies (speles_beigas ir False)
speles_beigas = False
if not speles_beigas:
    print("Spēle turpinās...")

1. uzdevums: Biļešu kontrole (Operators AND)

Izmanto and operatoru, lai pārbaudītu divus neatkarīgus datu ievades nosacījumus vienā koda rindā.

Izpildes soļi:

  1. VS Code izveido failu kino.py.
  2. Iegūsti divus mainīgos no lietotāja: vecums (kā Integer) un nauda (kā Float).
  3. Uzraksti if zarošanos ar operatoru and, lai pārbaudītu, vai vecums ir lielāks vai vienāds ar 12 UN nauda ir lielāka vai vienāda ar 7.50.
  4. Ja abi nosacījumi ir True, izvadi terminālī: "Biļete iegādāta!".
  5. Citos gadījumos (else bloks) izvadi: "Tev nepietiek vecuma vai naudas.".

2. uzdevums: "Gudrais" tiesnesis V2 (Operators OR)

Padari programmu elastīgāku pret lietotāja ievadi, ļaujot tai pieņemt vairākus derīgus atbilžu variantus.

Izpildes soļi:

  1. Izveido failu tiesnesis_v2.py.
  2. Iegūsti lietotāja teksta ievadi un saglabā mainīgajā gajiens.
  3. Izmanto if ar operatoru or, lai pārbaudītu, vai lietotājs ir ievadījis vārdu "stop" VAI vārdu "iziet".
  4. Ja kāds no nosacījumiem izpildās, izvadi: "Spēles beigas!".
  5. Ja lietotājs ievada ko citu, izmanto else, lai izvadītu: "Spēle turpinās!".

3. uzdevums: Akmens-Šķēres-Papīrīts (Loģikas apvienošana)

Kombinē and un or operatorus, lai aprakstītu kompleksus spēles noteikumus vienā izteiksmē.

Izpildes soļi:

  1. Izveido failu asp_logika.py.
  2. Definē datora gājienu kodā: dators = "skeres" un iegūsti lietotāja izvēli ar input().
  3. Izmanto vienu if pārbaudi ar iekavām (), or un and operatoriem, lai definētu visus iespējamos lietotāja uzvaras scenārijus vienā rindā. Piemēram: if (cilveks == "akmens" and dators == "skeres") or (...):
  4. Ja nosacījums izpildās, izvadi uzvaras paziņojumu.
  5. Pievieno elif cilveks == dators: neizšķirta situācijai un else: zaudējumam.
  6. Iesūtīt uzdevuma github saiti e-klasē.

Papildus uzdevums: VIP ieeja (Kombinētā loģika)

Izveido programmu, kas ļauj iekļūt VIP zonā, ja izpildās viens no diviem pilnīgi atšķirīgiem kritēriju kopumiem.

Izpildes soļi:

  1. Izveido failu vip.py.
  2. Iegūsti no lietotāja viņa vecumu (int) un to, vai viņam ir VIP karte (input, kas gaida "ja" vai "ne").
  3. Izveido loģisko pārbaudi, kur ieeja tiek atļauta (True) TIKAI tad, ja: spēlētājam ir 18+ gadi UN viņam ir VIP karte, VAI ARĪ spēlētājam ir vismaz 65 gadi (senioru bezmaksas ieeja, karte nav nepieciešama).
  4. Izmanto iekavas () loģikas grupēšanai, lai dators pareizi ievērotu operāciju prioritātes.

Biežākās kļūdas (un kā tās labot):

Koda piemērs: Loģikas apvienošana

# Lietotāja ievade un definēti mainīgie
lietus = True
ir_lietussargs = False

# Loģisko operatoru izmantošana zarošanās procesā
if lietus and not ir_lietussargs:
    print("Tu samirksi! Paņem lietussargu.")
elif lietus and ir_lietussargs:
    print("Lietus līst, bet Tev ir lietussargs. Viss labi!")
else:
    print("Laiks ir saulains vai nav pamata uztraukumam.")
Tu samirksi! Paņem lietussargu.
⬅ Iepriekšējā stunda Nākamā stunda ➡