Tilbake
5.2
Variabler og datatyper

5.2 Variabler og datatyper

Variabler, talltyper, strenger og boolske verdier i Python.

30 min
5 oppgaver
VariablerDatatyperStrengerPython
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 5 oppgaver

Når programmet må tenke selv

Til nå har programmene dine kjørt linje for linje, ovenfra og ned, hver gang likt. Men de fleste nyttige programmer må kunne ta valg -- gjøre noe bare hvis en betingelse er oppfylt -- og gjenta handlinger mange ganger. Dette styres av kontrollstrukturer.

I dette kapittelet møter du tre slike: if-setninger for å ta beslutninger, for-løkker for å gjenta et bestemt antall ganger, og while-løkker for å gjenta så lenge noe er sant. Med disse verktøyene kan programmene dine plutselig reagere på data -- sjekke om en sensorverdi er for høy, analysere mange målinger, eller styre en prosess automatisk.

Sant eller usant: boolske uttrykk

Alle valg i et program bygger på boolske uttrykk -- uttrykk som er enten True eller False. Disse lager vi med sammenligningsoperatorer. Pass spesielt på den første: == betyr «er lik», med to likhetstegn, mens enkelt = er tilordning. Dette er en av de aller vanligste begynnerfeilene. De øvrige er != for «er ulik», pluss <, >, <= og >= for de vanlige sammenligningene.

Vi kan også kombinere flere uttrykk med logiske operatorer. and krever at begge sidene er sanne, or krever at minst én er sann, og not snur sannhetsverdien. Har vi temperatur = 25, er temperatur > 20 sant, og temperatur > 20 and fuktighet > 70 er sant bare hvis begge stemmer.

Dette er kjernen i all databehandling. Tenk deg en temperatursensor som viser 28,5 grader. Vil du vite om den er over 30, skriver du temp > 30, som gir False. Vil du vite om den er mellom 20 og 30, bruker du temp > 20 and temp < 30, som gir True, fordi begge betingelsene må holde. Og vil du sjekke om den er under 0 eller over 35, bruker du temp < 0 or temp > 35, der det holder at én av dem er sann.

📝Oppgave Quiz 1

If-setninger og for-løkker

Med boolske uttrykk på plass kan vi ta beslutninger med if-setninger. Den enkleste formen kjører en kodeblokk hvis betingelsen er sann. Med else legger vi til hva som skal skje ellers, og med elif -- kort for «else if» -- kan vi sjekke flere betingelser på rad. En viktig detalj i Python: koden som hører til en betingelse, må være rykket inn med fire mellomrom. Innrykket forteller Python hva som hører sammen.

Python sjekker betingelsene ovenfra og ned og kjører koden under den første som er sann -- så hopper den ut. Tenk deg et varslingsprogram: hvis temp < 0, skriv «Frost!»; ellers hvis temp <= 15, skriv «Kaldt»; ellers hvis temp <= 25, skriv «Behagelig»; ellers skriv «Varmt!». For temperaturen 18 stopper Python ved den tredje betingelsen og skriver «Behagelig». Rekkefølgen er viktig, for senere betingelser bygger på at de tidligere allerede er utelukket.

Når vi vil gjenta noe et bestemt antall ganger, bruker vi en for-løkke. Vanligst er den sammen med range(): for i in range(5) kjører fem ganger med i lik 0, 1, 2, 3, 4. Legg merke til at sluttverdien ikke er med -- range(3, 8) gir 3, 4, 5, 6, 7, ikke 8. Du kan også legge til et steg: range(0, 10, 2) gir partallene 0, 2, 4, 6, 8. For-løkker kan dessuten gå gjennom en liste, som for farge in farger. Vil du regne gjennomsnittet av fem målinger, lager du en variabel total = 0 utenfor løkken, leser inn én måling per runde og legger den til totalen, og deler til slutt på fem.

📝Oppgave Quiz 2

While-løkker -- og en farlig felle

Noen ganger vet vi ikke på forhånd hvor mange ganger noe skal gjentas. Da bruker vi en while-løkke, som gjentar en kodeblokk så lenge en betingelse er sann. En enkel nedtelling kan se slik ut: så lenge tall > 0, skriv ut tallet og trekk fra én -- til tallet når null. Det aller viktigste her er den lille linjen som endrer løkkevariabelen. Uten den oppdateringen stopper løkken aldri.

Dette fører oss til den farligste fellen i programmering: den uendelige løkken. Hvis betingelsen aldri blir usann, kjører løkken for alltid og programmet henger. Skriver du while tall > 0 og bare øker tallet inni løkken, blir betingelsen aldri usann. For å unngå dette må du alltid sørge for at løkkevariabelen endres, og at endringen bringer betingelsen nærmere False. Havner du likevel i en uendelig løkke, kan du avbryte med Ctrl+C.

Et nyttig verktøy er break, som avbryter løkken umiddelbart. Mønsteret while True kombinert med break er vanlig når du vil kjøre helt til noe bestemt skjer. Tenk deg et «gjett tallet»-spill: datamaskinen velger et tilfeldig tall, og i en while True-løkke leser den inn gjett, sier «for lavt» eller «for høyt», og bruker break til å avslutte når gjettet stemmer. En grei tommelfingerregel er denne: bruk en for-løkke når du vet hvor mange ganger koden skal kjøre, og en while-løkke når du ikke vet det, men har en betingelse å sjekke.

📝Oppgave Quiz 3

Oppsummering

Vi har sett de tre viktigste kontrollstrukturene. Boolske uttrykk, bygd med sammenligningsoperatorer som == (ikke =!) og logiske operatorer som and, or og not, er grunnlaget for alle valg. If-setninger med if, elif og else tar beslutninger og kjører koden under den første sanne betingelsen.

For-løkker gjentar et kjent antall ganger, ofte med range(), der sluttverdien aldri er med. While-løkker gjentar så lenge en betingelse er sann, men krever at løkkevariabelen endres -- ellers blir det en uendelig løkke. Tommelfingerregelen er enkel: for-løkke når antallet er kjent, while-løkke når du bare har en betingelse å sjekke.

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.