9.1 Grunnleggjande Python
Variablar, rekneoperasjonar, utskrift og lister — nok Python til å lese og skrive små matematikkprogram.
Programmering i matematikken
Eit program er ei oppskrift som datamaskina følgjer linje for linje, ovanfrå og ned. I matematikken bruker vi program til å rekne ut mange verdiar raskt, til å prøve oss fram systematisk og til å undersøkje mønster.
På eksamen i 1T møter du programmering på tre måtar:
- lese eit program og forklare kva det gjer og kva det skriv ut
- endre eller fullføre eit program
- skrive eit program som løyser eit problem
Vi bruker programmeringsspråket Python. Dette delkapittelet tek for seg byggjesteinane: variablar, rekneoperasjonar, utskrift og lister.
Ein variabel er eit namn som peikar på ein verdi. Linja
a = 3er ei tilordning: variabelen a får verdien 3. Likskapsteiknet i Python tyder «får verdien», ikkje «er lik». Difor er
a = a + 1ei gyldig linje: Python reknar først ut høgre side med den gamle verdien av a, og lèt så a få det nye svaret.
Å følgje eit program linje for linje
Når du skal finne ut kva eit program skriv ut, lagar du ein sporingstabell: éin kolonne per variabel og éi rad per linje som endrar noko. Du fyller inn verdiane i den rekkjefølgja Python utfører linjene.
Kva skriv 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 skriv ut 10 7.Rekneoperasjonar
| Python | Tyding | Døme | Resultat |
|---|---|---|---|
+, - | pluss, minus | 7 - 2 | 5 |
* | gonge | 7 * 2 | 14 |
/ | divisjon | 7 / 2 | 3.5 |
** | potens | 7 ** 2 | 49 |
// | heiltalsdivisjon | 7 // 2 | 3 |
% | rest ved divisjon | 7 % 2 | 1 |
Python følgjer dei vanlege reknereglane: potensar først, så gonging og divisjon, så pluss og minus. Parentesar blir rekna først.
Divisjon med
/ gir alltid eit desimaltal (6 / 2 gir 3.0). Python bruker desimalpunktum; når du skriv svaret i teksten, bruker du desimalkomma.a // b gir kor mange heile gonger b går opp i a, og a % b gir resten. Til dømes er , så 17 // 5 gir 3 og 17 % 5 gir 2.Kva skriv programmet ut?
print(2 ** 10)
print(17 // 5)
print(17 % 5)
print(17 / 5)
print(6 / 2), så heiltalsdivisjonen gir 3 og resten er 2.
, men / gir alltid desimaltal: 3.0.
1024
3
2
3.4
3.0Svar: 1024, 3, 2, 3.4 og 3.0 på kvar si linje.
I Python tyder ^ noko heilt anna enn potens. Programmet gir inga feilmelding, men feil svar:
print(2 ^ 3)
print(2 ** 3)1
8Desimaltal blir lagra med eit endeleg tal på siffer i totalssystemet. Difor kan små avrundingsfeil dukke opp i utskrifta:
print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))0.30000000000000004
0.3Ei utskrift som 79.74734731199999 er altså berre — rundar du av, blir det .
Kva skriv programmet ut?
print(9 // 4)
print(9 % 4)
print(9 / 4)
print(3 ** 4)Lag ein sporingstabell og finn kva programmet skriv ut.
x = 4
y = x ** 2
x = y - x
print(x, y)Kva for ein verdi skriv programmet ut?
s = 1
s = s + 4
s = s * 3
s = s - 2
print(s)Ola vil rekne ut og skriv programmet under. Programmet skriv ut 7.
print(5 ^ 2)Kva er feil?
Rett programmet.
Utskrift og tekst
print skriv ut verdiar. Fleire verdiar skilde med komma blir skrivne ut med mellomrom mellom. Tekst står i hermeteikn.
Med ein f-streng (f"...") kan vi setje verdiar rett inn i teksten. {areal:.2f} tyder «verdien av areal med to desimalar».
Ferdige matematiske funksjonar og konstantar hentar vi frå math: sqrt (kvadratrot) og pi.
Skriv eit program som reknar ut arealet av ein sirkel med radius 3 cm og skriv ut svaret med to desimalar.
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
Ei liste samlar fleire verdiar i éin variabel: L = [4, 7, 1, 8].
| Python | Tyding |
|---|---|
L[0] | det første elementet (nummereringa startar på 0) |
L[-1] | det siste elementet |
len(L) | talet på element |
sum(L) | summen av elementa |
max(L), min(L) | største og minste element |
L.append(5) | legg 5 til bakarst i lista |
sum(L) / len(L) er gjennomsnittet av tala i lista.Kva skriv 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 element.
Etter append er lista [4, 7, 1, 8, 5] med sum 25 og 5 element: .
4
8
8
4 20
[4, 7, 1, 8, 5]
5.0Svar: Sjå utskrifta. Den siste linja er gjennomsnittet av tala i lista.
Kva skriv programmet ut?
L = [3, 7, 1, 9, 5]
print(L[0], L[-1])
print(len(L), sum(L))
print(max(L) - min(L))Kva skriv programmet ut?
L = []
L.append(2)
L.append(L[0] * 3)
L.append(L[1] * 3)
print(L, sum(L))Frå formel til program
Når du skal lage eit program ut frå ein formel, går du fram slik:
- Gi kvar storleik eit variabelnamn og ein verdi.
- Skriv formelen med Python-operatorar.
- Skriv ut resultatet, gjerne med ein forklarande tekst.
Kommentarar startar med #. Python hoppar over dei, men dei gjer programmet lettare å lese for sensor.
Skriv eit program som reknar ut hypotenusen i ein rettvinkla trekant med katetar 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.
Trekanttal nummer er . Rekn ut med eit program.
n = 12
t = n * (n + 1) / 2
print(t)
t = n * (n + 1) // 2
print(t)78.0
78 er alltid eit partal, så // gir same svar som /, men som heiltal.
Svar:
Skriv eit program som reknar ut volumet av ein sylinder med radius 2,5 cm og høgd 10 cm. Svaret skal skrivast ut med éin desimal. Bruk .
Skriv eit program som reknar ut hypotenusen i ein rettvinkla trekant med katetar 5 og 12.
Ein serie figurar er bygd av små kvadrat. Figur har kvadrat, slik at figur 1, 2 og 3 har 3, 8 og 15 kvadrat.
Kontroller formelen for figur 1, 2 og 3.
Skriv eit program som reknar ut talet på kvadrat i figur 20.
Oppgåver i eksamensform
Når ei oppgåve spør «Kva skal programmet brukast til?» eller «Kva fortel verdiane?», skal svaret seie kva programmet reknar ut i samanhengen, ikkje berre gjenta koden.
Kari har laga programmet nedanfor. Kva skriv programmet ut, og kva er hensikta med variabelen c?
a = 5
b = 3
c = a
a = b
b = c
print(a, b)Kva fortel dei to verdiane som blir skrivne ut når programmet blir køyrt?
L = [12, 15, 9, 20, 14]
s = sum(L)
n = len(L)
g = s / n
print(g)
print(max(L) - min(L))Kva skriv programmet ut? Forklar kva programmet reknar ut.
pris = 250
pris = pris * 1.2
pris = pris * 0.75
print(pris)Ein figur blir laga av 144 små kvadrat. Du har 1 000 000 kvadrat.
Skriv eit program som finn kor mange heile figurar du kan lage, og kor mange kvadrat du har igjen.
Kontroller svaret utan program.
Skriv eit program som gjer om 10 000 sekund til timar, minutt og sekund.
Oppsummering
- = er tilordning: variabelen til venstre får verdien til høgre.
- Ein sporingstabell viser verdien til kvar variabel etter kvar linje.
- ** er potens, // heiltalsdivisjon og % rest. / gir alltid desimaltal.
- print skriv ut, og f"{x:.2f}" gir to desimalar.
- 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.