Løkker er noe som brukes i programmering for å gjøre koden effektiv. La oss si at vi ønsker oss et program som skriver ut de 10 første rektangeltallene. Dette kan vi gjøre slik:

print(1*2)
print(2*3)
print(3*4)
print(4*5)
print(5*6)
print(6*7)
print(7*8)
print(8*9)
print(9*10)
print(10*11)

Denne koden gjør jo jobben, men jeg kjenner at jeg er glad ikke oppgaven var å skrive ut de første 100 rektangeltallene.

Dersom vi skal gjenta liknende oppgaver kan det være praktisk å benytte seg av løkker, og vi starter med å lage en «while-løkke».

While-løkker i python

While-løkker kan vi benytte dersom det passer seg å kjøre en løkke inntil et kriterium er oppfylt. Oppgaven over passer til dette. Vi vil kjøre print-funksjonen helt til vi kommer til nr 10. Sjekk denne koden:

n = 1

while n < 11:
    print(n * (n + 1))
    n = n + 1

Vi starter med å sette en verdi til en variabel (jeg kaller den bare n). Deretter så starter jeg en løkke som skal kjøre så lenge n er mindre enn 11. Deretter så kjøres en print-funksjon der jeg benytter meg av variabelen, og i linje 5 øker jeg verdien av n med 1. Deretter vil løkka fortsette, helt til n ikke er mindre enn 11. Vi oppnår altså det samme. Legg også merke til innrykket i linje 4 og 5. Dette forteller at disse linjene hører til løkka.

Prøv å lag et program som skriver ut trekanttall fra nr 10 til 20.

For-løkker i python

Vi kan også benytte oss av en annen type løkker i python; nemlig for-løkker. Disse er meget praktiske fordi de tar med seg en variabel inn i løkka (vi trenger ikke lage n først). Variabelen vil også endre verdi automatisk. Sjekk denne koden:

for n in range(1,11):
    print(n * (n + 1))

Her er det linje 1 som bør forklares. Jeg starter løkka med ordet ‘for’. Deretter definerer jeg bokstaven ‘n’ som variabelen som skal endres for hver gang løkka kjører. Verdiene som n skal ha er i dette tilfellet (en ‘range’) fra 1 til 11 (ikke til og med 11).

Dette betyr at første gang løkka kjører vil n være 1, neste gang vil n være 2 osv. Slik holder den på helt til n er 11, og da stopper den.

Prøv selv: Lag et program som skriver ut trekanttall fra 5 til 15.

Utfordring

La oss sjekke Fibonacci- tallene. Vi ønsker å skrive ut de 100 første. Klarer du det selv? Her kommer litt hjelp, men prøv gjerne selv:

a = 1 #Definerer de to første verdiene
b = 1

print(a)#Skriver ut de 2 første tallene
print(b)

for i in range(98):# skal bare kjøres 98 ganger
    c = a + b # Lager en ny variabel som er summen av de to forrige
    print(c) # Skriver ut den nye variabelen
    a = b # Omdefinerer a til å være b
    b = c # Omdefinerer b til å være det nest siste tallet