Tavs šīs stundas izaicinājums: Padarīt spēles loģiku "gudrāku" un koda rindu skaitu – mazāku. Tu iemācīsies apvienot vairākus nosacījumus vienā pārbaudē, izmantojot loģiskos operatorus.
SR 2.4.13. (Zarošanās loģika, saliktas izteiksmes)Loģiskie operatori ļauj mums apvienot vairākas salīdzināšanas vienā teikumā, aizstājot sarežģītus, ligzdotus if nosacījumus.
| Operators | Nozīme | Piemērs | Rezultāts ir True, ja... |
|---|---|---|---|
and |
UN | vecums >= 12 and nauda >= 7 |
...abi nosacījumi ir pareizi. |
or |
VAI | ievade == "stop" or ievade == "beigt" |
...vismaz viens no nosacījumiem ir pareizs. |
not |
NE | not speles_beigas |
...nosacījums ir nepatiems (apgriež vērtību). |
Bez loģiskajiem operatoriem mums būtu jāraksta "if" "if" (tā sauktie nested if), kas padara kodu nepārskatāmu. Ar and/or mēs varam uzrakstīt sarežģītu spēles noteikumu vienā, viegli lasāmā rindā.
kino.py.int) un naudas daudzumu (float).if ar operatoru and, lai pārbaudītu, vai vecums ir ≥ 12 UN nauda ≥ 7.50.else) izvadi: "Tev nepietiek vecuma vai naudas.".tiesnesis_v2.py.gajiens.or, lai pārbaudītu, vai lietotājs ir ievadījis "stop" VAI "iziet".asp_logika.py.dators = "skeres" un lietotājs ievada savu izvēli.if rindu ar or un vairākiem and, lai definētu visus uzvaras variantus (akmens pret šķērēm, papīrs pret akmeni utt.).if (izvele == "akmens" and dators == "skeres") or (...):elif neizšķirtam un else zaudējumam.if x == "a" or "b": ir kļūda. Python tas vienmēr būs True. Jāraksta: if x == "a" or x == "b":.and un or vienā rindā, lieto iekavas, lai skaidri norādītu prioritāti (līdzīgi kā matemātikā).not (x > 5) ir tas pats, kas x <= 5.# Piemērs ar AND un NOT
lietus = True
ir_lietussargs = False
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.")