If-setninger, for-løkker og while-løkker for styring av programflyt.
Kontrollstrukturer og løkker
Til nå har programmene våre kjørt linje for linje fra topp til bunn. Men i virkeligheten må programmer ofte ta valg og gjenta handlinger. Kontrollstrukturer lar oss styre hvilke kodelinjer som kjøres basert på betingelser, og løkker lar oss gjenta kode uten å skrive den flere ganger.
Disse verktøyene er helt sentrale i programmering. Uten dem ville programmene våre vært svært begrensede.
En if-setning utfører kode bare når en betingelse er sann:
if betingelse:
# Kode som kjører hvis betingelsen er TrueVi kan legge til elif (else if) for flere betingelser, og else for alt annet:
if betingelse1:
# Kjører hvis betingelse1 er True
elif betingelse2:
# Kjører hvis betingelse1 er False og betingelse2 er True
else:
# Kjører hvis ingen betingelser er TrueViktig: Koden som tilhører en blokk må være innrykket (vanligvis 4 mellomrom). Python bruker innrykk i stedet for klammer {} for å markere kodeblokker.
Lag et program som gir karakter basert på poengsum (0-100).
poeng = int(input("Skriv inn poeng (0-100): "))
if poeng >= 90:
karakter = 6
elif poeng >= 77:
karakter = 5
elif poeng >= 60:
karakter = 4
elif poeng >= 40:
karakter = 3
elif poeng >= 20:
karakter = 2
else:
karakter = 1
print("Du fikk karakter:", karakter)Python sjekker betingelsene fra toppen. Så snart én betingelse er sann, kjøres den tilhørende blokken og resten hoppes over.
Hva skrives ut av denne koden?
x = 15
if x > 20:
print("Stor")
elif x > 10:
print("Medium")
else:
print("Liten")Skriv et program som ber brukeren om et tall og sjekker om tallet er positivt, negativt eller null. Skriv ut en passende melding.
En for-løkke gjentar kode et bestemt antall ganger. Vi bruker ofte range() for å lage en tallsekvens:
for i in range(5):
print(i)
# Skriver ut: 0, 1, 2, 3, 4range() kan brukes på tre måter:
- range(slutt) — fra 0 til slutt-1
- range(start, slutt) — fra start til slutt-1
- range(start, slutt, steg) — fra start til slutt-1 med angitt steg
for i in range(2, 10, 2):
print(i)
# Skriver ut: 2, 4, 6, 8Vi kan også iterere over strenger og lister:
for bokstav in "Hei":
print(bokstav)
# Skriver ut: H, e, iBeregn summen av tallene fra 1 til 100 med en for-løkke.
total = 0
for i in range(1, 101):
total = total + i
print("Summen er:", total) # Summen er: 5050range(1, 101) gir tallene 1, 2, 3, ..., 100. For hvert tall legges det til total. Dette er den berømte summen som Gauss fant som barn.
Hva skrives ut av denne koden?
for i in range(1, 8, 3):
print(i, end=" ")En while-løkke gjentar kode så lenge en betingelse er sann:
while betingelse:
# Kode som gjentasteller = 0
while teller < 5:
print(teller)
teller = teller + 1
# Skriver ut: 0, 1, 2, 3, 4Advarsel: Hvis betingelsen aldri blir usann, får du en uendelig løkke. Sørg alltid for at noe endrer betingelsen inne i løkken.
Lag et program der brukeren skal gjette et hemmelig tall.
hemmelig = 7
gjett = 0
while gjett != hemmelig:
gjett = int(input("Gjett tallet (1-10): "))
if gjett < hemmelig:
print("For lavt!")
elif gjett > hemmelig:
print("For høyt!")
print("Riktig! Tallet var", hemmelig)Løkken fortsetter så lenge gjett ikke er lik hemmelig. Brukeren får hint etter hvert forsøk.
Skriv et program som ber brukeren om tall gjentatte ganger, og summerer dem. Programmet skal stoppe når brukeren skriver 0, og skrive ut den totale summen.
Eksempel:
Skriv et tall (0 for å avslutte): 5
Skriv et tall (0 for å avslutte): 3
Skriv et tall (0 for å avslutte): 8
Skriv et tall (0 for å avslutte): 0
Total sum: 16break avbryter løkken umiddelbart og hopper ut:for i in range(10):
if i == 5:
break
print(i)
# Skriver ut: 0, 1, 2, 3, 4continue hopper over resten av den gjeldende iterasjonen og går til neste:
for i in range(6):
if i == 3:
continue
print(i)
# Skriver ut: 0, 1, 2, 4, 5 (3 hoppes over)break er nyttig for å stoppe en løkke tidlig, mens continue er nyttig for å hoppe over visse iterasjoner.
Hva skrives ut av denne koden?
for i in range(1, 6):
if i == 3:
continue
if i == 5:
break
print(i, end=" ")En nøstet løkke er en løkke inne i en annen løkke. For hver iterasjon av den ytre løkken kjøres hele den indre løkken:
for rad in range(3):
for kolonne in range(4):
print("*", end=" ")
print() # Ny linje etter hver radOutput:
* * * *
* * * *
* * * *Den ytre løkken styrer radene, den indre styrer kolonnene. Totalt kjøres print-setningen 3 × 4 = 12 ganger.
Skriv ut gangetabellen for tallene 1 til 5.
for i in range(1, 6):
for j in range(1, 6):
resultat = i * j
print(f"{resultat:4}", end="")
print()Output:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25f"{resultat:4}" formaterer tallet med 4 tegns bredde for jevne kolonner.
Skriv et program som bruker nøstede løkker til å skrive ut dette mønsteret:
*
* *
* * *
* * * *
* * * * *Skriv et program som finner alle primtall mellom 2 og 50.
Et primtall er et tall som bare er delelig med 1 og seg selv. Bruk en nøstet løkke der den ytre løkken går gjennom tallene og den indre sjekker delelighet.
Hvor mange ganger skrives "Hei" ut i denne koden?
for i in range(3):
for j in range(i + 1):
print("Hei")Oppsummering
I dette kapittelet har du lært:
- If-setninger lar deg styre programflyten basert på betingelser
- Elif og else gir flere forgreninger i beslutningslogikken
- For-løkker med range() gjentar kode et bestemt antall ganger
- While-løkker gjentar kode så lenge en betingelse er sann
- Break avbryter en løkke, mens continue hopper til neste iterasjon
- Nøstede løkker er løkker inne i andre løkker, nyttig for tabeller og matriser
Nøkkelbegreper
| Begrep | Forklaring |
|---|---|
| If-setning | Utfører kode kun når en betingelse er sann |
| For-løkke | Itererer over en sekvens eller et bestemt antall ganger |
| While-løkke | Gjentar kode så lenge betingelsen holder |
| Break | Avbryter en løkke umiddelbart |
| Continue | Hopper til neste iterasjon |
| Nøstet løkke | En løkke inne i en annen løkke |
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.