11.2 Programmering med Python
Variabler, løkker, betingelser og lister i Python.
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
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 = TruePython har fleire datatypar:
| Type | Beskrivelse | Døme |
|---|---|---|
int | Heiltall | 42, -7, 0 |
float | Desimaltal | 3.14, 0.5 |
str | Tekst (streng) | "Hei", "Python" |
bool | Sannhetsverdi | True, 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 10Du 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.Skriv eit Python-program som bereknar arealet av ein sirkel med radius .
import math
radius = 5
areal = math.pi * radius**2
print(f"Arealet av sirkelen er {areal:.2f}")Utskrift:
Arealet av sirkelen er 78.54Forklaring:
- import math gir tilgang til matematiske funksjonar og konstantar
- math.pi er verdien av
- **2 betyr "opphøgd i 2" (kvadrat)
- :.2f betyr at vi viser 2 desimalar
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
| Operator | Betydning | Døme | Resultat |
|---|---|---|---|
+ | Addisjon | 7 + 3 | 10 |
- | Subtraksjon | 7 - 3 | 4 |
* | Multiplikasjon | 7 * 3 | 21 |
/ | Divisjon | 7 / 3 | 2.333... |
// | Heiltallsdivisjon | 7 // 3 | 2 |
% | Modulo (rest) | 7 % 3 | 1 |
** | Potens | 2 ** 3 | 8 |
Merk skilnaden mellom
/ (vanleg divisjon) og // (heiltallsdivisjon). Og % (modulo) gir resten – det same som vi brukte i Euklids algoritme!Skriv eit program som ber brukaren om to tal og skriv ut summen, differansen, produktet og kvotienten.
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.4Skriv eit Python-program som ber brukaren om radius til ein sirkel, og deretter bereknar og skriv ut arealet og omkrinsen.
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:
| Operator | Betydning |
|---|---|
== | 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.
Skriv eit program som sjekkar om eit tal er partall eller oddetall.
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 oddetallSkriv eit Python-program som ber brukaren om tre tal og skriv ut det største av dei. Bruk if, elif og else.
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:
| Uttrykk | Betydning | Tal som genereras |
|---|---|---|
range(n) | Frå 0 til | 0, 1, 2, ..., n-1 |
range(a, b) | Frå til | a, a+1, ..., b-1 |
range(a, b, steg) | Frå til med gjeve steg | Avhengig 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)Skriv eit program som bereknar summen .
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 5050Vi kan sjekke med formelen: \checkmark
Merk: Vi brukar variabelnamnet sum_tal i staden for sum, fordi sum er ein innebygd funksjon i Python.
Skriv eit Python-program som skriv ut gangetabellen for eit tal brukaren vel (frå 1 til 10).
Ein while-løkke gjentar ein kodeblokk så lenge eit vilkår er sant:
tal = 1
while tal <= 10:
print(tal)
tal = tal + 1Dette 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.
Ein liste er ein samling av verdiar i ein bestemt rekkjefølgje:
tal = [3, 7, 1, 9, 4]
namn = ["Ola", "Kari", "Per"]Nyttige listeoperasjonar:
| Operasjon | Beskrivelse | Døme |
|---|---|---|
len(liste) | Antal element | len([3,7,1]) 3 |
liste[i] | Element nr. (startar på 0) | tal[0] 3 |
liste.append(x) | Legg til element | tal.append(5) |
sum(liste) | Summen av alle element | sum([3,7,1]) 11 |
min(liste) | Minste element | min([3,7,1]) 1 |
max(liste) | Største element | max([3,7,1]) 9 |
Du kan gå gjennom ein liste med ein for-løkke:
karakter = [4, 5, 3, 6, 5]
for karakter in karakter:
print(karakter)Skriv eit program som finn gjennomsnittet av tala .
tall = [4, 7, 2, 9, 5, 8]
gjennomsnitt = sum(tall) / len(tall)
print(f"Gjennomsnittet er {gjennomsnitt:.2f}")Utskrift:
Gjennomsnittet er 5.83Manuell kontroll: \checkmark
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.
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
| Begrep | Forklaring |
|---|---|
| Variabel | Eit namn som lagrar ein verdi |
| Datatype | Type verdi (heiltall, desimaltal, tekst, sannhetsverdi) |
| Vilkår | Kode som berre køyrer viss eit vilkår er oppfylt |
| For-løkke | Gjenteking med eit bestemt antal repetisjoner |
| While-løkke | Gjenteking så lenge eit vilkår er sant |
| Liste | Ei ordna samling av verdiar |
| f-streng | Formateringstreng i Python: f"tekst {variabel}" |
Skriv eit Python-program som løyser andregradslikninga . Programmet skal be brukaren om , og , rekna ut diskriminanten, og skriva ut løysinga(ne) eller melde frå viss det ikkje finnast reelle løysingar.
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.
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.
I Python gir 10 / 3 svaret 3.
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.
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.