Python for lærere – Egentrening
Fire konsepter
3 Løkker
3.1 For-løkker
Funksjoner
Løkker
OK, la oss komme igang med løkker. Løkker er det vi benytter i programmering for å automatisere et sett med instruksjoner. Det finnes 2 typer løkker:
- For-løkker
- Benyttes i hovedsak for å gjenta et bestemt antall ganger
- Innebygd variabel som utvikler seg med løkka (du vil se hva jeg mener)
- While-løkker
- En løkke som gjentas helt til et vilkår er oppfylt
- Kan være sårbar for å lage uendelige løkker, noe som fører til at programmet låser seg i evig kjøring
Vi starter med for-løkker!
I all programmering kommer du til å trenge å si “gjenta 10 ganger” eller noe liknende. Alle språk har forskjellige måter å skrive dette. Vi må lære oss syntax’en i python. La oss lage en løkke som skriver ut 10 gangestykker med svar:
from random import randint
for i in range(10):
tall_1 = randint(1, 10)
tall_2 = randint(1, 10)
svar = tall_1 * tall_2
print(tall_1, "x", tall_2, "=", svar)
print("Da er løkka ferdig")
Skriv inn denne koden i Code, og kjør den. Her er det flere ting å legge merke til:
- “gjenta 10 ganger” skrives på pythonsk “for i in range(10):”
- alltid kolon på slutten av en for-linje
- all kode som skal gjentas må rykkes inn for at python skal forstå hva som er “i løkka”
- linje 8 er ikke en del av løkka, fordi den ikke er rykket inn
- En python-editor (Code) vil lage automatisk innrykk etter en korrekt for-linje
- “i” er en variabel i denne løkka, og kan kalles hva som helst. Variabelen kan benytts i koden. La oss se hvordan:
print("Tall-Kvadrattall")
for i in range(10):
print(i, i*i)
Her ser vi hvordan vi kan benytte oss av variabelen “i” gjennom løkka. Den starter på verdien 0, og når den blir 10, så stopper løkka.
Funksjonen range() kan faktisk ta imot flere argumenter, så hvis jeg vil skrive ut kvadrattall nr 11 til 20 så kan jeg gjøre det slik:
print("Tall-Kvadrattall")
for i in range(11, 21):
print(i, i*i)
La oss lage en oppgave:
Abel vil kjøpe seg en el-sykkel som koster 20 000,- Han har 12 000,- på konto i dag, men han kan spare kr 750,- hver måned.
Hvor mye vil han ha på konto etter ett år?
konto = 12000
sparing = 750
for i in range(13):
print("Etter", i, "mnd:", konto)
konto = konto + sparing
Bruk denne oppgaven til å lage dine egne oppgaver. Lag løsningsforslag, og bruk en ai til å se om den har noen andre forslag.
Ny oppgave; lag en oversikt over de 100 første kvadrattall, rektangeltall og trekanttall!
print("Kvadrattall - Rektangeltall - Trekanttall")
for i in range(1, 101):
print(" ", i * i, " - ", i * (i + 1), " - ", round((i * (i + 1)) / 2))
Her har jeg prøvd å lage en tabell med mellomrom, men som du ser på output, så fungerer det bare sånn passe.
La oss prøve med tabulatorer:
print(" Kvadrattall - Rektangeltall - Trekanttall")
for i in range(1, 101):
print("\t", i * i, "\t\t", i * (i + 1), "\t\t", round((i * (i + 1)) / 2))
Legg merke til hvordan “\t” tolkes som en tabulator. “\n” vil tolkes som et linjeskift.
DigitAbel – for dypere læring
