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 tradisjonelle versjonen
Din fremgang i kapitlet
0 / 5 oppgaver

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.

Boolske uttrykk og samanlikningsoperatorar

Eit boolsk uttrykk er eit uttrykk som blir evaluert til anten True (sant) eller False (usant). Boolske uttrykk blir bygde med samanlikningsoperatorar:

OperatorTydingDømeResultat
==Er lik5 == 5True
!=Er ulik5 != 3True
<Mindre enn3 < 5True
>Større enn3 > 5False
<=Mindre enn eller lik5 <= 5True
>=Større enn eller lik6 >= 5True

Logiske operatorar kombinerer fleire boolske uttrykk:
OperatorTydingDøme
andBegge må vere sannex > 0 and x < 100
orMinst éin må vere sannx < 0 or x > 100
notNegasjon (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)   # False

Vanleg 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.

✏️Døme: Sensorvurdering

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)     # False

Uttrykk b) brukar and fordi begge vilkåra må stemme. Uttrykk c) brukar or fordi det held at éitt av vilkåra er sant.

📝Oppgave 1

Gitt x = 7, kva blir resultatet av x >= 5 and x < 10?

If-setningar

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 True

If-else:

if betingelse:
    # Kjøres hvis True
else:
    # Kjøres hvis False

If-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 True

Viktig: 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.

✏️Døme: Temperaturvarsling

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).

📝Oppgave 2

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")

For-løkker

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, 4

range() med ulike argument:

KallGenerererForklaring
range(5)0, 1, 2, 3, 4Frå 0 til (men ikkje med) 5
range(2, 7)2, 3, 4, 5, 6Frå 2 til (men ikkje med) 7
range(0, 10, 2)0, 2, 4, 6, 8Frå 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.

✏️Døme: Gjennomsnitt av målingar

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 °C

Lø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.

📝Oppgave 3

Kva skriv for i in range(3, 8): print(i) ut?

While-løkker

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 True

Dø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":
        break

✏️Døme: Gjett talet

Skriv 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.")
        break

Programmet 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.

📝Oppgave 4

Kva blir verdien av teller etter at følgjande kode er køyrt?

teller = 0
while teller < 10:
    teller = teller + 3

Oppsummering – Kontrollstrukturar

Du har no lært dei tre viktigaste kontrollstrukturane i Python:

StrukturBruksområdeNøkkelord
If-setningTa avgjerder basert på vilkårif, elif, else
For-løkkeGjenta kode eit bestemt tal gongerfor, in, range()
While-løkkeGjenta kode så lenge vilkår er santwhile, break

Samanlikningsoperatorar: ==, !=, <, >, <=, >=
Logiske operatorar: and, or, not
Tommelfingerregel: 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.
📝Oppgave 5

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.

📝Oppgave 6

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.