11.2 Programmering med Python
Variabler, løkker, betingelser og lister i Python.
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
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 = TruePython har flere datatyper:
| Type | Beskrivelse | Eksempel |
|---|---|---|
int | Heltall | 42, -7, 0 |
float | Desimaltall | 3.14, 0.5 |
str | Tekst (streng) | "Hei", "Python" |
bool | Sannhetsverdi | True, 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 10Du 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.Skriv et Python-program som beregner arealet av en 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 funksjoner og konstanter
- math.pi er verdien av
- **2 betyr "opphøyd i 2" (kvadrat)
- :.2f betyr at vi viser 2 desimaler
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
| Operator | Betydning | Eksempel | Resultat |
|---|---|---|---|
+ | Addisjon | 7 + 3 | 10 |
- | Subtraksjon | 7 - 3 | 4 |
* | Multiplikasjon | 7 * 3 | 21 |
/ | Divisjon | 7 / 3 | 2.333... |
// | Heltallsdivisjon | 7 // 3 | 2 |
% | Modulo (rest) | 7 % 3 | 1 |
** | Potens | 2 ** 3 | 8 |
Merk forskjellen mellom
/ (vanlig divisjon) og // (heltallsdivisjon). Og % (modulo) gir resten – det samme som vi brukte i Euklids algoritme!Skriv et program som ber brukeren om to tall og skriver ut summen, differansen, produktet og kvotienten.
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.4Skriv et Python-program som ber brukeren om radius til en sirkel, og deretter beregner og skriver ut arealet og omkretsen.
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:
| Operator | Betydning |
|---|---|
== | 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.
Skriv et program som sjekker om et tall er partall eller oddetall.
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 oddetallSkriv et Python-program som ber brukeren om tre tall og skriver ut det største av dem. Bruk if, elif og else.
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:
| Uttrykk | Betydning | Tall som genereres |
|---|---|---|
range(n) | Fra 0 til | 0, 1, 2, ..., n-1 |
range(a, b) | Fra til | a, a+1, ..., b-1 |
range(a, b, steg) | Fra til med gitt steg | Avhenger 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)Skriv et program som beregner summen .
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 5050Vi kan sjekke med formelen: \checkmark
Merk: Vi bruker variabelnavnet sum_tall i stedet for sum, fordi sum er en innebygd funksjon i Python.
Skriv et Python-program som skriver ut gangetabellen for et tall brukeren velger (fra 1 til 10).
En while-løkke gjentar en kodeblokk så lenge en betingelse er sann:
tall = 1
while tall <= 10:
print(tall)
tall = tall + 1Dette 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.
En liste er en samling av verdier i en bestemt rekkefølge:
tall = [3, 7, 1, 9, 4]
navn = ["Ola", "Kari", "Per"]Nyttige listeoperasjoner:
| Operasjon | Beskrivelse | Eksempel |
|---|---|---|
len(liste) | Antall elementer | len([3,7,1]) 3 |
liste[i] | Element nr. (starter på 0) | tall[0] 3 |
liste.append(x) | Legg til element | tall.append(5) |
sum(liste) | Summen av alle elementer | 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 en liste med en for-løkke:
karakterer = [4, 5, 3, 6, 5]
for karakter in karakterer:
print(karakter)Skriv et program som finner gjennomsnittet av tallene .
tall = [4, 7, 2, 9, 5, 8]
gjennomsnitt = sum(tall) / len(tall)
print(f"Gjennomsnittet er {gjennomsnitt:.2f}")Utskrift:
Gjennomsnittet er 5.83Manuell sjekk: \checkmark
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.
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
| Begrep | Forklaring |
|---|---|
| Variabel | Et navn som lagrer en verdi |
| Datatype | Type verdi (heltall, desimaltall, tekst, sannhetsverdi) |
| Betingelse | Kode som bare kjører hvis et vilkår er oppfylt |
| For-løkke | Gjentakelse med et bestemt antall repetisjoner |
| While-løkke | Gjentakelse så lenge en betingelse er sann |
| Liste | En ordnet samling av verdier |
| f-streng | Formateringsstreng i Python: f"tekst {variabel}" |
Skriv et Python-program som løser andregradsligningen . Programmet skal be brukeren om , og , beregne diskriminanten, og skrive ut løsningen(e) eller melde fra hvis det ikke finnes reelle løsninger.
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.
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.
I Python gir 10 / 3 svaret 3.
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.
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.