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

Nå som du kan lage algoritmer med pseudokode, er det på tide å lære et ekte programmeringsspråk! Python er et populært programmeringsspråk som er lett å lære og mye brukt i matematikk og vitenskap.

I dette kapittelet skal du lære:

- Variabler og datatyper
- Utskrift med print() og inndata med input()
- Betingelser med if, elif og else
- Løkker med for og while
- Lister
- Matematiske operatorer i Python

Variabler og datatyper i Python

En variabel er et navn som lagrer en verdi. I Python lager du en variabel ved å gi den et navn og en verdi:

alder = 15
navn = "Emma"
hoyde = 1.68
er_elev = True

Python har flere datatyper:

TypeBeskrivelseEksempel
intHeltall42, -7, 0
floatDesimaltall3.14, 0.5
strTekst (streng)"Hei", "Python"
boolSannhetsverdiTrue, False

Merk: I Python bruker vi punktum som desimaltegn (ikke komma).

Utskrift med print()

Funksjonen print() skriver ut tekst og verdier til skjermen:

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

Gir utskriften:

Hei, verden!
42
Svaret er 10

Du kan kombinere tekst og variabler med f-strenger:

navn = "Ola"
alder = 15
print(f"{navn} er {alder} år gammel.")

Gir utskriften:

Ola er 15 år gammel.
✏️Eksempel: Beregne areal av en sirkel

Skriv et Python-program som beregner arealet av en sirkel med radius r=5r = 5.

Løsning:

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 funksjoner og konstanter
- math.pi er verdien av π3,14159\pi \approx 3{,}14159
- **2 betyr "opphøyd i 2" (kvadrat)
- :.2f betyr at vi viser 2 desimaler

📝Oppgave 1

Skriv et Python-program som lagrer lengden og bredden til et rektangel i variabler, beregner arealet og omkretsen, og skriver ut begge.

Brukerinndata med input()

Funksjonen input() lar brukeren skrive inn data. Den returnerer alltid en tekststreng, så vi må konvertere til tall med int() eller float():

navn = input("Hva heter du? ")
alder = int(input("Hvor gammel er du? "))
hoyde = float(input("Hvor høy er du (i meter)? "))

Matematiske operatorer i Python

OperatorBetydningEksempelResultat
+Addisjon7 + 310
-Subtraksjon7 - 34
*Multiplikasjon7 * 321
/Divisjon7 / 32.333...
//Heltallsdivisjon7 // 32
%Modulo (rest)7 % 31
**Potens2 ** 38

Merk forskjellen mellom / (vanlig divisjon) og // (heltallsdivisjon). Og % (modulo) gir resten – det samme som vi brukte i Euklids algoritme!
✏️Eksempel: Program med brukerinndata

Skriv et program som ber brukeren om to tall og skriver ut summen, differansen, produktet og kvotienten.

Løsning:

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

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

Eksempel på kjøring:

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

Skriv et Python-program som ber brukeren om radius til en sirkel, og deretter beregner og skriver ut arealet og omkretsen.

Betingelser: if, elif og else
Betingelser lar programmet ta valg. Vi bruker if, elif (forkortelse for "else if") og else:

tall = int(input("Skriv inn et tall: "))

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

Sammenligningsoperatorer:

OperatorBetydning
==Er lik
!=Er ikke 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 bruker innrykk for å vise hva som hører til en betingelse.
✏️Eksempel: Sjekke om tall er partall eller oddetall

Skriv et program som sjekker om et tall er partall eller oddetall.

Løsning:

tall = int(input("Skriv inn et heltall: "))

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

Forklaring: tall % 2 gir resten når tallet deles på 2. Hvis resten er 0, er tallet et partall.

Eksempel på kjøring:

Skriv inn et heltall: 17
17 er et oddetall
📝Oppgave 3

Skriv et Python-program som ber brukeren om tre tall og skriver ut det største av dem. Bruk if, elif og else.

For-løkker

En for-løkke gjentar en kodeblokk et bestemt antall ganger. I Python bruker vi for sammen med range():

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

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

range() kan brukes på tre måter:

UttrykkBetydningTall som genereres
range(n)Fra 0 til n1n-10, 1, 2, ..., n-1
range(a, b)Fra aa til b1b-1a, a+1, ..., b-1
range(a, b, steg)Fra aa til b1b-1 med gitt stegAvhenger av steg

Eksempler:
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)

✏️Eksempel: Summere tall med for-løkke

Skriv et program som beregner summen 1+2+3++1001 + 2 + 3 + \ldots + 100.

Løsning:

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

print(f"Summen av tallene fra 1 til 100 er {sum_tall}")

Utskrift:

Summen av tallene fra 1 til 100 er 5050

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

Merk: Vi bruker variabelnavnet sum_tall i stedet for sum, fordi sum er en innebygd funksjon i Python.

📝Oppgave 4

Skriv et Python-program som skriver ut gangetabellen for et tall brukeren velger (fra 1 til 10).

While-løkker

En while-løkke gjentar en kodeblokk så lenge en betingelse er sann:

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

Dette skriver ut tallene 1 til 10.

Viktig: Pass på at betingelsen til slutt blir usann, ellers får du en uendelig løkke (programmet stopper aldri).

While-løkker er nyttige når vi ikke vet på forhånd hvor mange ganger vi skal gjenta. For eksempel i Euklids algoritme vet vi ikke hvor mange steg som trengs.

Lister i Python

En liste er en samling av verdier i en bestemt rekkefølge:

tall = [3, 7, 1, 9, 4]
navn = ["Ola", "Kari", "Per"]

Nyttige listeoperasjoner:

OperasjonBeskrivelseEksempel
len(liste)Antall elementerlen([3,7,1]) \rightarrow 3
liste[i]Element nr. ii (starter på 0)tall[0] \rightarrow 3
liste.append(x)Legg til elementtall.append(5)
sum(liste)Summen av alle elementersum([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 en liste med en for-løkke:
karakterer = [4, 5, 3, 6, 5]
for karakter in karakterer:
    print(karakter)

✏️Eksempel: Gjennomsnitt av en liste

Skriv et program som finner gjennomsnittet av tallene [4,7,2,9,5,8][4, 7, 2, 9, 5, 8].

Løsning:

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

Utskrift:

Gjennomsnittet er 5.83

Manuell sjekk: 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 et Python-program som bruker en while-løkke til å implementere Euklids algoritme. Programmet skal be brukeren om to tall og skrive ut den største felles divisor.

📝Oppgave 6

Skriv et Python-program som ber brukeren skrive inn tall til de skriver 0. Programmet skal deretter skrive ut hvor mange tall som ble skrevet inn, summen og gjennomsnittet.

Oppsummering

I dette kapittelet har du lært:

- Variabler lagrer verdier (int, float, str, bool)
- print() skriver ut og input() leser inn data
- Betingelser (if/elif/else) lar programmet ta valg
- For-løkker gjentar kode et bestemt antall ganger med range()
- While-løkker gjentar kode så lenge en betingelse er sann
- Lister samler flere verdier og har nyttige funksjoner som sum(), len(), min(), max()
- Matematiske operatorer: +, -, *, /, //, %, **

Nøkkelbegreper


BegrepForklaring
VariabelEt navn som lagrer en verdi
DatatypeType verdi (heltall, desimaltall, tekst, sannhetsverdi)
BetingelseKode som bare kjører hvis et vilkår er oppfylt
For-løkkeGjentakelse med et bestemt antall repetisjoner
While-løkkeGjentakelse så lenge en betingelse er sann
ListeEn ordnet samling av verdier
f-strengFormateringsstreng i Python: f"tekst {variabel}"
📝Oppgave 7

Skriv et Python-program som løser andregradsligningen ax2+bx+c=0ax^2 + bx + c = 0. Programmet skal be brukeren om aa, bb og cc, beregne diskriminanten, og skrive ut løsningen(e) eller melde fra hvis det ikke finnes reelle løsninger.

📝Oppgave 8

Skriv et Python-program som tar inn en liste med tall fra brukeren og sorterer listen fra minst til størst med boblsortering. Ikke bruk Pythons innebygde sort()-funksjon.

📝Oppgave F1
Finn feilen! Oliver skal skrive et Python-program som regner ut gjennomsnittet av tallene fra 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 hva som gikk galt.

📝Oppgave S1
Sant eller usant?

I Python gir 10 / 3 svaret 3.

📝Oppgave D1
Drøftingsoppgave: Programmering gjør det mulig å automatisere oppgaver som ellers ville tatt lang tid.

a) Gi et eksempel på en oppgave som er enkel for en datamaskin, men vanskelig eller kjedelig for et menneske.

b) Gi et eksempel på en oppgave som er enkel for et menneske, men vanskelig å programmere.

c) Diskuter: Bør alle lære å programmere? Begrunn svaret ditt.

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