0%

🔀 Nosacījumi

Nosacījumu konstrukcijas ļauj programmai izlemt, kuru koda ceļu izpildīt. Python piedāvā klasisko if/elif/else, ternāro operatoru un Python 3.10+ match/case.

python

if / elif / else

Teksts
# Pamata if
vecums = 20

if vecums >= 18:
    print("Pilngadīgs")

# if / else
if vecums >= 18:
    print("Pilngadīgs")
else:
    print("Nepilngadīgs")

# if / elif / else
atzime = 85

if atzime >= 90:
    vertejums = "Izcili"
elif atzime >= 75:
    vertejums = "Labi"
elif atzime >= 60:
    vertejums = "Viduvēji"
else:
    vertejums = "Neveiksmīgi"

print(f"Atzīme {atzime}: {vertejums}")  # Atzīme 85: Labi

# Ligzdoti if
x = 15
if x > 0:
    if x > 10:
        print("Liels pozitīvs")
    else:
        print("Mazs pozitīvs")
else:
    print("Negatīvs vai nulle")

Patiesuma vērtības (Truthiness)

Teksts
# Python uzskata šīs vērtības par False:
print(bool(0))          # False
print(bool(0.0))        # False
print(bool(""))         # False – tukša virkne
print(bool(None))       # False
print(bool([]  ))       # False – tukšs saraksts
print(bool({}  ))       # False – tukša vārdnīca
print(bool(set()))      # False – tukša kopa

# Viss pārējais ir True:
print(bool(1))          # True
print(bool(-1))         # True
print(bool("x"))        # True
print(bool([0]))        # True – saraksts ar vienu elementi!

# Praksē:
vards = input("Ievadi vārdu: ")
if vards:                   # True, ja nav tukšs
    print(f"Sveika, {vards}!")
else:
    print("Vārds netika ievadīts!")

saraksts = []
if not saraksts:            # True, ja tukšs
    print("Saraksts ir tukšs")

Ternārais operators

Kompakts if/else vienā rindā.

Teksts
# Sintakse: vērtība_ja_true if nosacījums else vērtība_ja_false
vecums = 20
statuss = "pilngadīgs" if vecums >= 18 else "nepilngadīgs"
print(statuss)   # pilngadīgs

# Piemēri
x = -5
abs_x = x if x >= 0 else -x   # Absolūtā vērtība
print(abs_x)                    # 5

skaitlis = 7
paritāte = "pāra" if skaitlis % 2 == 0 else "nepāra"
print(f"{skaitlis} ir {paritāte}")  # 7 ir nepāra

# Ligzdots ternārs (nav ieteicams – grūti lasāms)
atzime = 85
# Labāk izmantot if/elif/else
vertejums = "Izcili" if atzime >= 90 else ("Labi" if atzime >= 75 else "Viduvēji")

# Ternārs sarakstā
skaitļi = [1, 2, 3, 4, 5]
uzraksts = ["pāra" if n % 2 == 0 else "nepāra" for n in skaitļi]
print(uzraksts)  # ["nepāra", "pāra", "nepāra", "pāra", "nepāra"]

match / case (Python 3.10+)

Python 3.10 ieviest Structural Pattern Matching – spēcīgāks nekā klasiskais switch.

🎓 Ko mācīties tālāk?

Nākamajā sadaļā uzzināsim par Python cilpām – for, while, range() un List Comprehension.

Teksts
# Pamata match/case
komanda = "quit"

match komanda:
    case "start":
        print("Startē...")
    case "stop":
        print("Apstājas...")
    case "quit" | "exit":   # Vairāki varianti
        print("Iziet no programmas")
    case _:                 # Noklusējums (kā "default")
        print(f"Nezināma komanda: {komanda}")

# match ar vērtībām (sargiem)
skaitlis = 42

match skaitlis:
    case n if n < 0:
        print(f"{n} ir negatīvs")
    case 0:
        print("Nulle")
    case n if n % 2 == 0:
        print(f"{n} ir pāra")
    case n:
        print(f"{n} ir nepāra")

# match ar tuple
koordinātas = (0, 5)

match koordinātas:
    case (0, 0):
        print("Izcelsme (origin)")
    case (x, 0):
        print(f"X ass: x={x}")
    case (0, y):
        print(f"Y ass: y={y}")
    case (x, y):
        print(f"Punkts: x={x}, y={y}")

# match ar vārdnīcu
HTTP_kods = {"status": 404, "message": "Not Found"}

match HTTP_kods:
    case {"status": 200}:
        print("Veiksmīgs!")
    case {"status": 404}:
        print("Lapa nav atrasta!")
    case {"status": 500}:
        print("Servera kļūda!")
    case _:
        print("Nezināms statuss")