Variabler, talltyper, strenger og boolske verdier i Python.
Kontrollstrukturar
Til no har programma våre køyrt linje for linje frå topp til botn. Men i verkelege program treng vi ofte å ta val (gjere noko berre dersom eit vilkår er oppfylt) og gjenta handlingar (køyre dei same instruksjonane mange gonger). Dette blir styrt med kontrollstrukturar.
I dette kapittelet lærer du tre viktige kontrollstrukturar:
- If-setningar – for å ta avgjerder basert på vilkår
- For-løkker – for å gjenta kode eit bestemt tal gonger
- While-løkker – for å gjenta kode så lenge eit vilkår er sant
Desse verktøya gjer at du kan skrive program som reagerer på data og utfører komplekse oppgåver automatisk.
Eit boolsk uttrykk er eit uttrykk som blir evaluert til anten True (sant) eller False (usant). Boolske uttrykk blir bygde med samanlikningsoperatorar:
| Operator | Tyding | Døme | Resultat |
|---|---|---|---|
== | Er lik | 5 == 5 | True |
!= | Er ulik | 5 != 3 | True |
< | Mindre enn | 3 < 5 | True |
> | Større enn | 3 > 5 | False |
<= | Mindre enn eller lik | 5 <= 5 | True |
>= | Større enn eller lik | 6 >= 5 | True |
Logiske operatorar kombinerer fleire boolske uttrykk:
| Operator | Tyding | Døme |
|---|---|---|
and | Begge må vere sanne | x > 0 and x < 100 |
or | Minst éin må vere sann | x < 0 or x > 100 |
not | Negasjon (snur sanningsverdien) | not (x > 0) |
Boolske uttrykk i praksis
Boolske uttrykk er grunnlaget for alle avgjerder i programmering. Her er nokre døme:
temperatur = 25
fuktighet = 80
print(temperatur > 20) # True
print(temperatur == 25) # True (merk: dobbelt likhetstegn!)
print(temperatur > 20 and fuktighet > 70) # True
print(temperatur > 30 or fuktighet > 90) # FalseVanleg feil: Å bruke enkelt likskapsteikn (=) i staden for dobbelt (==) i samanlikningar. Hugs: = tilordnar ein verdi, medan == samanliknar to verdiar.
Boolske uttrykk er spesielt nyttige i teknologi og forskingslære – til dømes for å sjekke om ein sensorverdi er innanfor eit akseptabelt område, eller om ei måling overskrid ei alarmgrense.
Ein temperatursensor gir verdien 28.5 °C. Skriv boolske uttrykk som sjekkar: a) Er temperaturen over 30 °C? b) Er temperaturen mellom 20 og 30 °C? c) Er temperaturen under 0 eller over 35?
temp = 28.5
# a) Er temperaturen over 30 °C?
print(temp > 30) # False
# b) Er temperaturen mellom 20 og 30 °C?
print(temp > 20 and temp < 30) # True
# c) Er temperaturen under 0 eller over 35?
print(temp < 0 or temp > 35) # FalseUttrykk b) brukar and fordi begge vilkåra må stemme. Uttrykk c) brukar or fordi det held at éitt av vilkåra er sant.
Gitt x = 7, kva blir resultatet av x >= 5 and x < 10?
Ei if-setning lèt programmet utføre ulike handlingar avhengig av om eit vilkår er sant eller usant.
Grunnleggjande if:
if betingelse:
# Kode som kjøres hvis betingelsen er TrueIf-else:
if betingelse:
# Kjøres hvis True
else:
# Kjøres hvis FalseIf-elif-else (fleire vilkår):
if betingelse_1:
# Kjøres hvis betingelse_1 er True
elif betingelse_2:
# Kjøres hvis betingelse_2 er True
elif betingelse_3:
# Kjøres hvis betingelse_3 er True
else:
# Kjøres hvis ingen av betingelsene er TrueViktig: Kodeblokka under eit vilkår må vere rykt inn med 4 mellomrom (eller éin tab). Innrykket fortel Python kva for kode som høyrer til vilkåret.
Skriv eit program som les inn ein temperatur og skriv ut ei passande melding: under 0 → «Frost!», 0–15 → «Kaldt», 15–25 → «Behageleg», over 25 → «Varmt!».
temp = float(input("Skriv inn temperaturen (°C): "))
if temp < 0:
print("Frost! Vær forsiktig med glatte veier.")
elif temp <= 15:
print("Kaldt. Ta på deg en jakke.")
elif temp <= 25:
print("Behagelig temperatur.")
else:
print("Varmt! Husk å drikke nok vann.")Eksempelkjøring:
Skriv inn temperaturen (°C): 18
Behagelig temperatur.Python sjekkar vilkåra ovanfrå og ned og utfører koden under det første vilkåret som er sant. Rekkjefølgja er viktig – vi sjekkar temp < 0 først, deretter temp <= 15 (som òg dekkjer temp >= 0 fordi vi allereie har utelukka negative verdiar).
Kva skriv følgjande kode ut?
x = 15
if x > 20:
print("A")
elif x > 10:
print("B")
elif x > 5:
print("C")
else:
print("D")Ei for-løkke blir brukt til å gjenta ei kodeblokk eit bestemt tal gonger, eller for å gå gjennom elementa i ein sekvens.
Grunnleggjande for-løkke med range():
for i in range(5):
print(i) # Skriver ut 0, 1, 2, 3, 4range() med ulike argument:
| Kall | Genererer | Forklaring |
|---|---|---|
range(5) | 0, 1, 2, 3, 4 | Frå 0 til (men ikkje med) 5 |
range(2, 7) | 2, 3, 4, 5, 6 | Frå 2 til (men ikkje med) 7 |
range(0, 10, 2) | 0, 2, 4, 6, 8 | Frå 0 til 10, med steg 2 |
Løkke gjennom ein sekvens:
farger = ["rød", "grønn", "blå"]
for farge in farger:
print(farge) # Skriver ut: rød, grønn, blåFor-løkker er svært nyttige for å behandle mange datapunkt, f.eks. sensorverdiar frå eit eksperiment.Skriv eit program som ber brukaren om 5 temperaturmålingar, reknar ut gjennomsnittet og skriv det ut.
total = 0
for i in range(5):
maling = float(input(f"Skriv inn måling {i + 1}: "))
total = total + maling
gjennomsnitt = total / 5
print(f"Gjennomsnittstemperatur: {gjennomsnitt:.1f} °C")Eksempelkjøring:
Skriv inn måling 1: 18.2
Skriv inn måling 2: 19.5
Skriv inn måling 3: 20.1
Skriv inn måling 4: 19.8
Skriv inn måling 5: 18.9
Gjennomsnittstemperatur: 19.3 °CLøkka køyrer 5 gonger (range(5) gir verdiane 0–4). For kvar iterasjon les vi inn ei måling og legg henne til totalen. Vi brukar i + 1 i utskrifta slik at nummereringa startar på 1 i staden for 0.
Kva skriv for i in range(3, 8): print(i) ut?
Ei while-løkke gjentek ei kodeblokk så lenge eit vilkår er sant. While-løkker er nyttige når du ikkje veit på førehand kor mange gonger løkka skal køyre.
while betingelse:
# Kode som gjentas så lenge betingelsen er TrueDøme – nedteljing:
tall = 5
while tall > 0:
print(tall)
tall = tall - 1 # Viktig: oppdater variabelen!
print("Start!")Utskrift: 5, 4, 3, 2, 1, Start!Åtvaring: Dersom vilkåret aldri blir False, får du ei uendeleg løkke – programmet stoppar aldri. Pass alltid på at løkkevariabelen blir endra slik at vilkåret til slutt blir usant.
break-setninga avbryt løkka med éin gong:
while True:
svar = input("Skriv 'stopp' for å avslutte: ")
if svar == "stopp":
breakSkriv eit program der datamaskina vel eit tilfeldig tal mellom 1 og 20, og brukaren skal gjette til dei finn det rette talet.
import random
hemmelig = random.randint(1, 20)
antall_forsok = 0
print("Jeg tenker på et tall mellom 1 og 20.")
while True:
gjett = int(input("Ditt gjett: "))
antall_forsok = antall_forsok + 1
if gjett < hemmelig:
print("For lavt! Prøv igjen.")
elif gjett > hemmelig:
print("For høyt! Prøv igjen.")
else:
print(f"Riktig! Du brukte {antall_forsok} forsøk.")
breakProgrammet brukar while True for å køyre løkka heilt til brukaren gjettar rett. Inne i løkka brukar ein ei if-elif-else for å gi tilbakemelding. Når brukaren gjettar rett, blir løkka avslutta med break.
Kva blir verdien av teller etter at følgjande kode er køyrt?
teller = 0
while teller < 10:
teller = teller + 3Ei uendeleg løkke oppstår når vilkåret i ei while-løkke aldri blir False:
# FEIL – dette stopper aldri!
tall = 1
while tall > 0:
print(tall)
tall = tall + 1 # tall blir bare større, aldri <= 0Dersom du hamnar i ei uendeleg løkke, trykk Ctrl+C for å avbryte programmet. For å unngå uendelege løkker:
- Sørg alltid for at løkkevariabelen blir endra inne i løkka
- Sjekk at endringa bringar vilkåret nærare False
- Bruk break som naudstopp i while True-løkker
Oppsummering – Kontrollstrukturar
Du har no lært dei tre viktigaste kontrollstrukturane i Python:
| Struktur | Bruksområde | Nøkkelord |
|---|---|---|
| If-setning | Ta avgjerder basert på vilkår | if, elif, else |
| For-løkke | Gjenta kode eit bestemt tal gonger | for, in, range() |
| While-løkke | Gjenta kode så lenge vilkår er sant | while, break |
Samanlikningsoperatorar:
==, !=, <, >, <=, >=Logiske operatorar:
and, or, notTommelfingerregel: Bruk ei for-løkke når du veit kor mange gonger koden skal køyre. Bruk ei while-løkke når du ikkje veit talet på gjentakingar, men har eit vilkår som skal sjekkast.
Kontrollstrukturar er kjernen i all programmering. Med if-setningar og løkker kan du skrive program som reagerer intelligent på data – til dømes analysere målingar, styre sensorar og automatisere prosessar.
Skriv eit Python-program som skriv ut alle partal frå 2 til og med 20 ved hjelp av ei for-løkke. Programmet skal i tillegg rekne ut og skrive ut summen av alle desse partala.
Skriv eit Python-program som simulerer ein enkel temperatursensor. Programmet skal: a) Generere 10 tilfeldige temperaturverdiar mellom 15.0 og 35.0 °C (bruk random.uniform(15, 35)). b) Skrive ut kvar måling med nummerering. c) Telje kor mange målingar som er over 25 °C (alarmgrensa). d) Rekne ut og skrive ut gjennomsnittstemperaturen og talet på alarmar.
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.