Vilkår og jokertegn
Legg til betingelser og standardtilfeller
Vilkår og jokertegn er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.
Finjustere treff
Noen ganger er ikke et strukturelt mønster nok; det trengs også en betingelse. Vaktbetingelser legger til en if-test i et tilfelle, og jokertegn gir fleksible mønstre som fanger opp alt.
Legge til en vaktbetingelse
Skriv if <condition> etter et mønster. Tilfellet samsvarer bare når mønsteret passer og vaktbetingelsen er sann.
n = 7
match n:
case x if x < 0:
print('negative')
case x if x == 0:
print('zero')
case x if x > 0:
print('positive')Vaktbetingelser bruker fangede navn
En vaktbetingelse kan referere til variabler som er bundet av mønsteret. Her kontrolleres det fangede paret for likhet.
point = [3, 3]
match point:
case [x, y] if x == y:
print('on the diagonal')
case [x, y]:
print('off the diagonal')Hvis vaktbetingelsen mislykkes
Hvis strukturen samsvarer, men vaktbetingelsen er usann, fortsetter mønstermatchingen til neste tilfelle i stedet for å stoppe.
value = 5
match value:
case n if n > 100:
print('big')
case n:
print('fell through to here:', n)Vaktbetingelser med klassemønstre
Vaktbetingelser kan kombineres med alle mønstertyper, også klassemønstre, for presise betingelser basert på objektattributter.
from dataclasses import dataclass
@dataclass
class Order:
total: float
def discount(order):
match order:
case Order(total=t) if t > 100:
return 'free shipping'
case Order():
return 'standard shipping'
print(discount(Order(150)))
print(discount(Order(50)))Oppsummering av jokertegnet
Den frittstående understreken _ samsvarer med hva som helst og binder ingenting. Som siste tilfelle håndterer den alt som ikke ble fanget opp tidligere.
x = 'unexpected'
match x:
case 'a':
print('letter a')
case _:
print('catch-all')Fangst eller jokertegn
En navngitt fangst samsvarer også med hva som helst, men beholder verdien, mens _ forkaster den. Bruk et navn når De trenger verdien i kroppen.
value = 42
match value:
case 0:
print('zero')
case other: # capture: keeps the value
print('value was', other)Jokertegn inne i mønstre
Understreken kan brukes inne i større mønstre for å ignorere deler De ikke trenger.
record = ('user', 42, 'ignore_me')
match record:
case ('user', user_id, _):
print('user id:', user_id)Kombinere OR, vaktbetingelser og jokertegn
Disse funksjonene kan settes sammen. Et OR-mønster, deretter en vaktbetingelse og til slutt et jokertegn gir en uttrykksfull klassifikator.
def classify(n):
match n:
case 0 | 1:
return 'binary digit'
case x if x % 2 == 0:
return 'even'
case _:
return 'odd'
print(classify(0))
print(classify(4))
print(classify(7))Uttømmende mønstermatching
I motsetning til enkelte språk krever ikke Python at en match er uttømmende. Hvis ingen tilfeller samsvarer, gjør setningen ganske enkelt ingenting. Legg til et avsluttende case _ når De vil garantere at en gren alltid kjøres.
color = 'purple'
result = 'no match'
match color:
case 'red':
result = 'stop'
case 'green':
result = 'go'
print(result)Vaktbetingelser på destrukturerte data
Vaktbetingelser passer naturlig sammen med sekvens- og mappingmønstre, slik at De kan teste verdiene som nettopp ble hentet ut.
data = [10, 20]
match data:
case [a, b] if a + b > 25:
print('sum is large')
case [a, b]:
print('sum is small')Kort kontroll
Hva skjer når et mønster samsvarer strukturelt, men vaktbetingelsen er usann?
Oppsummering
De har lært å legge til betingelser og tilfeller som fanger opp alt.
- Vaktbetingelser legger til en
if-test som kan bruke fangede navn. - Hvis en vaktbetingelse mislykkes, fortsetter matchingen til neste tilfelle.
_samsvarer og forkaster verdien, mens et navn fanger den.- Legg til et avsluttende
case _for en garantert gren.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 76
- Leksjoner
- 320
Ofte stilte spørsmål
Er leksjonen «Vilkår og jokertegn» gratis?
Ja – hele teksten i «Vilkår og jokertegn» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Vilkår og jokertegn»?
Legg til betingelser og standardtilfeller Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Python Academy?
Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Vilkår og jokertegn»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?
Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.