Loopar

Hur skulle du använda Python för att räkna upp alla tal från \(1\) till \(10\)?

Visst, du kan göra såhär:

print(1) 
print(2) 
print(3)
…
# och så vidare ner till print(10).

Men finns det ett bättre sätt?

Upprepningar

Hur skulle du skriva ut alla tal från \(1\) till \(100\)? På samma sätt som ovan? Ja, det går ju, men det blir många rader kod. Vi gör ju nästan samma sak på varje rad, vi har bara bytt ut en siffra.

Upprepningar är den en stor pusselbit i programmering. Vi såg det med sten-sax-påse spelet i förra kapitlet, vi vill ju kunna spela igen och igen.

Inom programmering kallar vi också olika typer av upprepning för loop eller loopar. Vi har två nyckelord för detta, for och while. I det här avsnittet kommer vi titta på for-loopar.

Titta på följande exempel:

for i in range(1, 11):
    print(i)

Vad händer här? Första ordet är for - vi visar att vi ska upprepa något. Vi behöver sedan namnge en variabel som vi använder, och slutligen i vilket intervall den rör sig i. I det här fallet talen \(1\) till \(11\), eller egentligen \(1\) till \(10\), för vi inkluderar inte den sista. Men mer om det snart.

Efteråt följer de rader som vi vill upprepa, en gång för varje värde i intervallet. Notera att raderna är indenterade, precis som för if-satser.

När programmet kommer hit så skapas variabeln i med värdet \(1\). Sedan körs den rad eller rader som ingår i loopen, i det här fallet print(i), och i-variabeln har värdet \(1\), så vi skriver ut en etta.

Sen börjar vi om. Variabeln i byts ut till nästa värde, som är \(2\), och print(i) körs igen, men den här gången är i lika med \(2\), så vi skriver ut \(2\). Vi börjar om igen. Och så vidare tills vi skrivit ut \(10\). Nästa värde är då \(11\), men det är då vi ska stanna - så vi säger att loopen avbryts.

Vi behöver inte använda denna variabel i print-funktionen, det här är också okej:

for i in range(1, 5):
    print("Hejsan")

Detta ger oss \(4\)-stycken Hejsan, en för varje värde på i, även om vi inte gör något med den variabeln.

Gångertabellen

Vi kan också använda variabeln i för andra uträkningar. Om vi vill ha hela fyrans gångertabell:

Det är vanligt att använda i eller j som namn på variabeln i en for-loop, men du får döpa den till precis vad du vill (precis som andra variabler). Kom ihåg att använda namn, som resultat, som beskriver vad variabler innehåller. Det blir lättare att hålla reda på de olika delarna i din kod då.

Det här är ett koncept som tar lite tid att vänja sig vid, så det är extra viktigt att göra de tillhörande uppgifterna för att bli bekväm med detta.

Har du en fråga du vill ställa om Loopar? Ställ den på Pluggakuten.se
Har du hittat ett fel, eller har du kommentarer till materialet på den här sidan? Mejla matteboken@mattecentrum.se

I den här videon tittar vi på skillnaden mellan while-loopar och for-loopar, och ett exempel på när vi kan använda dem.

  • range: Skapar ett intervall som kan användas för att upprepa kod, till exempel alla tal mellan 1 och 10.
  • for-loop: En typ av loop/upprepning som passar bra när det är ett på förhand bestämt antal steg.
  • while-loop: En typ av loop/upprepning som passar bra när vi inte vet på förhand hur många steg som ska köras. Kan också användas för oändliga loopar.
  • Variabel: En plats i datorns minne där vi kan spara något, kanske en bit text, ett namn, eller ett tal som 42.
Svårighetsgrad