Tilbake
11.2

11.2 Programmering med Python

Variabler, løkker, betingelser og lister i Python.

55 min
8 oppgaver
PythonVariablerLøkkerBetingelserLister
Du leser den tradisjonelle versjonen
Din fremgang i kapitlet
0 / 8 oppgaver
Kapitlets plass i kurset

Programmering med Python

No som du kan lage algoritmar med pseudokode, er det på tide å lære eit ekte programmeringsspråk! Python er eit populært programmeringsspråk som er lett å lære og mykje brukt i matematikk og vitenskap.

I dette kapitlet skal du lære:

- Variablar og datatypar
- Utskrift med print() og inndata med input()
- Vilkår med if, elif og else
- Løkker med for og while
- Lister
- Matematiske operatorar i Python

Variablar og datatypar i Python

Ein variabel er eit namn som lagrar ein verdi. I Python lagar du ein variabel ved å gi ho eit namn og ein verdi:

alder = 15
namn = "Emma"
høgd = 1.68
er_elev = True

Python har fleire datatypar:

TypeBeskrivelseDøme
intHeiltall42, -7, 0
floatDesimaltal3.14, 0.5
strTekst (streng)"Hei", "Python"
boolSannhetsverdiTrue, False

Merk: I Python brukar vi punktum som desimaltegn (ikkje komma).

Utskrift med print()

Funksjonen print() skriv ut tekst og verdiar til skjermen:

print("Hei, verden!")
print(42)
print("Svaret er", 7 + 3)

Gir utskrifta:

Hei, verden!
42
Svaret er 10

Du kan kombinere tekst og variablar med f-strengar:

namn = "Ola"
alder = 15
print(f"{namn} er {alder} år gamal.")

Gir utskrifta:

Ola er 15 år gamal.
✏️Døme: Berekne areal av ein sirkel

Skriv eit Python-program som bereknar arealet av ein sirkel med radius r=5r = 5.

Løysing:

import math

radius = 5
areal = math.pi * radius**2
print(f"Arealet av sirkelen er {areal:.2f}")

Utskrift:

Arealet av sirkelen er 78.54

Forklaring:
- import math gir tilgang til matematiske funksjonar og konstantar
- math.pi er verdien av π3,14159\pi \approx 3{,}14159
- **2 betyr "opphøgd i 2" (kvadrat)
- :.2f betyr at vi viser 2 desimalar

📝Oppgave 1

Skriv eit Python-program som lagrar lengda og breidda til eit rektangel i variablar, bereknar arealet og omkrinsen, og skriv ut båe.

Brukarinput med input()

Funksjonen input() let brukaren skrive inn data. Ho returnerer alltid ein tekststreng, så vi må konvertere til tal med int() eller float():

namn = input("Kva heiter du? ")
alder = int(input("Kor gamal er du? "))
høgd = float(input("Kor høg er du (i meter)? "))

Matematiske operatorar i Python

OperatorBetydningDømeResultat
+Addisjon7 + 310
-Subtraksjon7 - 34
*Multiplikasjon7 * 321
/Divisjon7 / 32.333...
//Heiltallsdivisjon7 // 32
%Modulo (rest)7 % 31
**Potens2 ** 38

Merk skilnaden mellom / (vanleg divisjon) og // (heiltallsdivisjon). Og % (modulo) gir resten – det same som vi brukte i Euklids algoritme!
✏️Døme: Program med brukarinput

Skriv eit program som ber brukaren om to tal og skriv ut summen, differansen, produktet og kvotienten.

Løysing:

tall1 = float(input("Skriv inn det første talet: "))
tall2 = float(input("Skriv inn det andre talet: "))

print(f"Sum: {tall1 + tall2}")
print(f"Differanse: {tall1 - tall2}")
print(f"Produkt: {tall1 * tall2}")
print(f"Kvotient: {tall1 / tall2}")

Døme på køyring:

Skriv inn det første talet: 12
Skriv inn det andre talet: 5
Sum: 17.0
Differanse: 7.0
Produkt: 60.0
Kvotient: 2.4
📝Oppgave 2

Skriv eit Python-program som ber brukaren om radius til ein sirkel, og deretter bereknar og skriv ut arealet og omkrinsen.

Vilkår: if, elif og else
Vilkår let programmet ta val. Vi brukar if, elif (forkortting for "else if") og else:

tall = int(input("Skriv inn eit tal: "))

if tall > 0:
    print("Talet er positivt")
elif tall < 0:
    print("Talet er negativt")
else:
    print("Talet er null")

Samanlikningsoperatorar:

OperatorBetydning
==Er lik
!=Er ikkje lik
>Større enn
<Mindre enn
>=Større enn eller lik
<=Mindre enn eller lik

Viktig: Legg merke til innrykk (4 mellomrom eller 1 tabulatortast). Python brukar innrykk for å vise kva som høyrer til eit vilkår.
✏️Døme: Sjekke om tal er partall eller oddetall

Skriv eit program som sjekkar om eit tal er partall eller oddetall.

Løysing:

tall = int(input("Skriv inn eit heiltall: "))

if tall % 2 == 0:
    print(f"{tall} er eit partall")
else:
    print(f"{tall} er eit oddetall")

Forklaring: tall % 2 gir resten når talet delast på 2. Viss resten er 0, er talet eit partall.

Døme på køyring:

Skriv inn eit heiltall: 17
17 er eit oddetall
📝Oppgave 3

Skriv eit Python-program som ber brukaren om tre tal og skriv ut det største av dei. Bruk if, elif og else.

For-løkker

Ein for-løkke gjentar ein kodeblokk eit bestemt antal gonger. I Python brukar vi for saman med range():

for i in range(5):
    print(i)

Gir utskrifta: 0, 1, 2, 3, 4

range() kan brukast på tre måtar:

UttrykkBetydningTal som genereras
range(n)Frå 0 til n1n-10, 1, 2, ..., n-1
range(a, b)Frå aa til b1b-1a, a+1, ..., b-1
range(a, b, steg)Frå aa til b1b-1 med gjeve stegAvhengig av steg

Døme:
for i in range(1, 6):     # 1, 2, 3, 4, 5
    print(i)

for i in range(0, 11, 2): # 0, 2, 4, 6, 8, 10
    print(i)

✏️Døme: Summere tal med for-løkke

Skriv eit program som bereknar summen 1+2+3++1001 + 2 + 3 + \ldots + 100.

Løysing:

sum_tal = 0
for i in range(1, 101):
    sum_tal = sum_tal + i

print(f"Summen av tala frå 1 til 100 er {sum_tal}")

Utskrift:

Summen av tala frå 1 til 100 er 5050

Vi kan sjekke med formelen: 1001012=5050\displaystyle \frac{100 \cdot 101}{2} = 5050 \checkmark

Merk: Vi brukar variabelnamnet sum_tal i staden for sum, fordi sum er ein innebygd funksjon i Python.

📝Oppgave 4

Skriv eit Python-program som skriv ut gangetabellen for eit tal brukaren vel (frå 1 til 10).

While-løkker

Ein while-løkke gjentar ein kodeblokk så lenge eit vilkår er sant:

tal = 1
while tal <= 10:
    print(tal)
    tal = tal + 1

Dette skriv ut tala 1 til 10.

Viktig: Pass på at vilkåret til slutt blir usant, elles får du ei uendeleg løkke (programmet stoppar aldri).

While-løkker er nyttige når vi ikkje veit på førehand kor mange gonger vi skal gjenta. Til dømes i Euklids algoritme veit vi ikkje kor mange steg som trenast.

Lister i Python

Ein liste er ein samling av verdiar i ein bestemt rekkjefølgje:

tal = [3, 7, 1, 9, 4]
namn = ["Ola", "Kari", "Per"]

Nyttige listeoperasjonar:

OperasjonBeskrivelseDøme
len(liste)Antal elementlen([3,7,1]) \rightarrow 3
liste[i]Element nr. ii (startar på 0)tal[0] \rightarrow 3
liste.append(x)Legg til elementtal.append(5)
sum(liste)Summen av alle elementsum([3,7,1]) \rightarrow 11
min(liste)Minste elementmin([3,7,1]) \rightarrow 1
max(liste)Største elementmax([3,7,1]) \rightarrow 9

Du kan gå gjennom ein liste med ein for-løkke:
karakter = [4, 5, 3, 6, 5]
for karakter in karakter:
    print(karakter)

✏️Døme: Gjennomsnitt av ei liste

Skriv eit program som finn gjennomsnittet av tala [4,7,2,9,5,8][4, 7, 2, 9, 5, 8].

Løysing:

tall = [4, 7, 2, 9, 5, 8]
gjennomsnitt = sum(tall) / len(tall)
print(f"Gjennomsnittet er {gjennomsnitt:.2f}")

Utskrift:

Gjennomsnittet er 5.83

Manuell kontroll: 4+7+2+9+5+86=3565,83\displaystyle \frac{4 + 7 + 2 + 9 + 5 + 8}{6} = \frac{35}{6} \approx 5{,}83 \checkmark

📝Oppgave 5

Skriv eit Python-program som brukar ein while-løkke til å implementera Euklids algoritme. Programmet skal be brukaren om to tal og skriva ut den største felles divisor.

📝Oppgave 6

Skriv eit Python-program som ber brukaren skriva inn tal til dei skriv 0. Programmet skal deretter skriva ut kor mange tal som vart skrivne inn, summen og gjennomsnittet.

Oppsummering

I dette kapittelet har du lært:

- Variablar lagrar verdiar (int, float, str, bool)
- print() skriv ut og input() les inn data
- Vilkår (if/elif/else) let programmet ta val
- For-løkker gjentek kode eit bestemt antal gonger med range()
- While-løkker gjentek kode så lenge eit vilkår er sant
- Lister samlar fleire verdiar og har nyttige funksjonar som sum(), len(), min(), max()
- Matematiske operatorar: +, -, *, /, //, %, **

Nøkkelbegrep


BegrepForklaring
VariabelEit namn som lagrar ein verdi
DatatypeType verdi (heiltall, desimaltal, tekst, sannhetsverdi)
VilkårKode som berre køyrer viss eit vilkår er oppfylt
For-løkkeGjenteking med eit bestemt antal repetisjoner
While-løkkeGjenteking så lenge eit vilkår er sant
ListeEi ordna samling av verdiar
f-strengFormateringstreng i Python: f"tekst {variabel}"
📝Oppgave 7

Skriv eit Python-program som løyser andregradslikninga ax2+bx+c=0ax^2 + bx + c = 0. Programmet skal be brukaren om aa, bb og cc, rekna ut diskriminanten, og skriva ut løysinga(ne) eller melde frå viss det ikkje finnast reelle løysingar.

📝Oppgave 8

Skriv eit Python-program som tek inn ei liste med tal frå brukaren og sorterer lista frå minst til størst med boblsortering. Ikkje bruk Pythons innebygde sort()-funksjon.

📝Oppgave F1
Finn feilen! Oliver skal skriva eit Python-program som reknar ut gjennomsnittet av tala frå 1 til 10:

total = 0
for i in range(1, 10):
    total = total + i
gjennomsnitt = total / 10
print(f"Gjennomsnittet er {gjennomsnitt}")

Programmet gir feil svar. Finn feilen og forklar kva som gjekk gale.

📝Oppgave S1
Sant eller usant?

I Python gir 10 / 3 svaret 3.

📝Oppgave D1
Drøftingsoppgåve: Programmering gjer det mogleg å automatisera oppgåver som elles ville teke lang tid.

a) Gje eit døme på ei oppgåve som er lett for ein datamaskin, men vanskeleg eller kjedeleg for eit menneske.

b) Gje eit døme på ei oppgåve som er lett for eit menneske, men vanskeleg å programmera.

c) Diskuter: Bør alle læra å programmera? Grunngi svaret ditt.

Repetisjonsoppgåver
Din fremgang
0deloppgaver0 / 6 oppgaver

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.