Løkker i python
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