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 = 1while 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 verdieneb = 1print(a)#Skriver ut de 2 første talleneprint(b)for i in range(98):# skal bare kjøres 98 gangerc = a + b # Lager en ny variabel som er summen av de to forrigeprint(c) # Skriver ut den nye variabelena = b # Omdefinerer a til å være bb = c # Omdefinerer b til å være det nest siste tallet