9.1 Grunnleggende Python
Variabler, regneoperasjoner, utskrift og lister — nok Python til å lese og skrive små matematikkprogram.
Programmering i matematikken
Et program er en oppskrift som datamaskinen følger linje for linje, ovenfra og ned. I matematikken bruker vi program til å regne ut mange verdier raskt, til å prøve oss fram systematisk og til å undersøke mønstre.
På eksamen i 1T møter du programmering på tre måter:
- lese et program og forklare hva det gjør og hva det skriver ut
- endre eller fullføre et program
- skrive et program som løser et problem
Vi bruker programmeringsspråket Python. Dette delkapitlet tar for seg byggesteinene: variabler, regneoperasjoner, utskrift og lister.
En variabel er et navn som peker på en verdi. Linjen
a = 3er en tilordning: variabelen a får verdien 3. Likhetstegnet i Python betyr «får verdien», ikke «er lik». Derfor er
a = a + 1en gyldig linje: Python regner først ut høyre side med den gamle verdien av a, og lar så a få det nye svaret.
Å følge et program linje for linje
Når du skal finne ut hva et program skriver ut, lager du en sporingstabell: én kolonne per variabel og én rad per linje som endrer noe. Du fyller inn verdiene i den rekkefølgen Python utfører linjene.
Hva skriver programmet ut?
a = 3
b = 2 * a + 1
a = a + b
print(a, b)| Linje | a | b |
|---|---|---|
a = 3 | 3 | |
b = 2 * a + 1 | 3 | 7 |
a = a + b | 10 | 7 |
Utskrift:
10 7Svar: Programmet skriver ut 10 7.Regneoperasjoner
| Python | Betydning | Eksempel | Resultat |
|---|---|---|---|
+, - | pluss, minus | 7 - 2 | 5 |
* | gange | 7 * 2 | 14 |
/ | divisjon | 7 / 2 | 3.5 |
** | potens | 7 ** 2 | 49 |
// | heltallsdivisjon | 7 // 2 | 3 |
% | rest ved divisjon | 7 % 2 | 1 |
Python følger de vanlige regnereglene: potenser først, så ganging og divisjon, så pluss og minus. Parenteser regnes først.
Divisjon med
/ gir alltid et desimaltall (6 / 2 gir 3.0). Python bruker desimalpunktum; når du skriver svaret i teksten, bruker du desimalkomma.a // b gir hvor mange hele ganger b går opp i a, og a % b gir resten. For eksempel er , så 17 // 5 gir 3 og 17 % 5 gir 2.Hva skriver programmet ut?
print(2 ** 10)
print(17 // 5)
print(17 % 5)
print(17 / 5)
print(6 / 2), så heltallsdivisjonen gir 3 og resten er 2.
, men / gir alltid desimaltall: 3.0.
1024
3
2
3.4
3.0Svar: 1024, 3, 2, 3.4 og 3.0 på hver sin linje.
I Python betyr ^ noe helt annet enn potens. Programmet gir ingen feilmelding, men feil svar:
print(2 ^ 3)
print(2 ** 3)1
8Desimaltall lagres med et endelig antall sifre i totallsystemet. Derfor kan små avrundingsfeil dukke opp i utskriften:
print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))0.30000000000000004
0.3En utskrift som 79.74734731199999 er altså bare — runder du av, blir det .
Hva skriver programmet ut?
print(9 // 4)
print(9 % 4)
print(9 / 4)
print(3 ** 4)Lag en sporingstabell og finn hva programmet skriver ut.
x = 4
y = x ** 2
x = y - x
print(x, y)Hvilken verdi skriver programmet ut?
s = 1
s = s + 4
s = s * 3
s = s - 2
print(s)Ola vil regne ut og skriver programmet under. Programmet skriver ut 7.
print(5 ^ 2)Hva er feil?
Rett programmet.
Utskrift og tekst
print skriver ut verdier. Flere verdier skilt med komma skrives ut med mellomrom mellom. Tekst står i anførselstegn.
Med en f-streng (f"...") kan vi sette verdier rett inn i teksten. {areal:.2f} betyr «verdien av areal med to desimaler».
Ferdige matematiske funksjoner og konstanter henter vi fra math: sqrt (kvadratrot) og pi.
Skriv et program som regner ut arealet av en sirkel med radius 3 cm og skriver ut svaret med to desimaler.
from math import pi
r = 3
areal = pi * r ** 2
print("Arealet er", areal)
print(f"Arealet er {areal:.2f} cm²")Arealet er 28.274333882308138
Arealet er 28.27 cm²Svar: Arealet er .
Lister
En liste samler flere verdier i én variabel: L = [4, 7, 1, 8].
| Python | Betydning |
|---|---|
L[0] | det første elementet (nummereringen starter på 0) |
L[-1] | det siste elementet |
len(L) | antall elementer |
sum(L) | summen av elementene |
max(L), min(L) | største og minste element |
L.append(5) | legger 5 til bakerst i lista |
sum(L) / len(L) er gjennomsnittet av tallene i lista.Hva skriver programmet ut?
L = [4, 7, 1, 8]
print(L[0])
print(L[3])
print(L[-1])
print(len(L), sum(L))
L.append(5)
print(L)
print(sum(L) / len(L))L[0] er 4, L[3] og L[-1] er 8., og lista har 4 elementer.
Etter append er lista [4, 7, 1, 8, 5] med sum 25 og 5 elementer: .
4
8
8
4 20
[4, 7, 1, 8, 5]
5.0Svar: Se utskriften. Den siste linjen er gjennomsnittet av tallene i lista.
Hva skriver programmet ut?
L = [3, 7, 1, 9, 5]
print(L[0], L[-1])
print(len(L), sum(L))
print(max(L) - min(L))Hva skriver programmet ut?
L = []
L.append(2)
L.append(L[0] * 3)
L.append(L[1] * 3)
print(L, sum(L))Fra formel til program
Når du skal lage et program ut fra en formel, går du fram slik:
- Gi hver størrelse et variabelnavn og en verdi.
- Skriv formelen med Python-operatorer.
- Skriv ut resultatet, gjerne med en forklarende tekst.
Kommentarer starter med #. Python hopper over dem, men de gjør programmet lettere å lese for sensor.
Skriv et program som regner ut hypotenusen i en rettvinklet trekant med kateter 6 og 8.
from math import sqrt
a = 6 # første katet
b = 8 # andre katet
c = sqrt(a ** 2 + b ** 2)
print("Hypotenusen er", c)Hypotenusen er 10.0Svar: Hypotenusen er 10.
Trekanttall nummer er . Regn ut med et program.
n = 12
t = n * (n + 1) / 2
print(t)
t = n * (n + 1) // 2
print(t)78.0
78 er alltid et partall, så // gir samme svar som /, men som heltall.
Svar:
Skriv et program som regner ut volumet av en sylinder med radius 2,5 cm og høyde 10 cm. Svaret skal skrives ut med én desimal. Bruk .
Skriv et program som regner ut hypotenusen i en rettvinklet trekant med kateter 5 og 12.
En serie figurer er bygd av små kvadrater. Figur har kvadrater, slik at figur 1, 2 og 3 har 3, 8 og 15 kvadrater.
Kontroller formelen for figur 1, 2 og 3.
Skriv et program som regner ut antall kvadrater i figur 20.
Oppgaver i eksamensform
Når en oppgave spør «Hva vil programmet brukes til?» eller «Hva forteller verdiene?», skal svaret si hva programmet regner ut i sammenhengen, ikke bare gjenta koden.
Kari har laget programmet nedenfor. Hva skriver programmet ut, og hva er hensikten med variabelen c?
a = 5
b = 3
c = a
a = b
b = c
print(a, b)Hva forteller de to verdiene som skrives ut når programmet kjøres?
L = [12, 15, 9, 20, 14]
s = sum(L)
n = len(L)
g = s / n
print(g)
print(max(L) - min(L))Hva skriver programmet ut? Forklar hva programmet regner ut.
pris = 250
pris = pris * 1.2
pris = pris * 0.75
print(pris)En figur lages av 144 små kvadrater. Du har 1 000 000 kvadrater.
Skriv et program som finner hvor mange hele figurer du kan lage, og hvor mange kvadrater du har igjen.
Kontroller svaret uten program.
Skriv et program som gjør om 10 000 sekunder til timer, minutter og sekunder.
Oppsummering
- = er tilordning: variabelen til venstre får verdien til høyre.
- En sporingstabell viser verdien til hver variabel etter hver linje.
- ** er potens, // heltallsdivisjon og % rest. / gir alltid desimaltall.
- print skriver ut, og f"{x:.2f}" gir to desimaler.
- Lister: L[0], L[-1], len(L), sum(L), max(L), min(L), L.append(x).
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.