Programmeringskurs: 3.2 for-løkker

Teori Løkker som går gjennom lister

Vi kan definere en liste ved å bruke firkantparenteser og kommaer mellom elementene.

#\texttt{liste = [element1, element2, element3, ...]}#

Slike lister kan brukes til mye forskjellig, og elementene som lagres kan være tekststrenger eller tall, eller en blanding. Uansett innhold, ønsker vi ofte å gå gjennom hele lista. Det kan være for å finne et spesielt element, telle antallet forekomster eller gjøre noe med elementene. Eller noe helt annet.

Å gå gjennom en liste slik kaller vi å traversere lista, og det bruker vi en #\texttt{for}#-løkke til.

En #\texttt{for}#-løkke som går gjennom en liste lager vi slik:

#\texttt{for }##\color{blue}{\texttt{element }}##\texttt{in }##\color{blue}{\texttt{liste}}##\texttt{:}#
#\quad \color{red}{\texttt{handling}}#

Vi bruker #\texttt{for-}#løkker når vi skal gjenta den samme handlingen på alle elementene i en liste.

Nedenfor ser du en liste med tall.

#\texttt{2, 8, 12, 30}#

Bruk en for-løkke for å bestemme summen og gjennomsnittet av tallene.

LØSNING:

Først definerer vi tre variabler.

#\texttt{listen = [2, 8, 12, 30]}#
#\texttt{sum = 0}#
#\texttt{N = len(listen)}#

Variabelen #\texttt{listen}# er listen med alle tallene. Variabelen #\texttt{sum}# skal vi bruke til å lagre summen etter hvert som vi traverserer lista. Før vi har begynt å gå gjennom lista må #\texttt{sum}# settes lik 0. Variabelen #\texttt{N}# skal vi bruke til å regne ut gjennomsnittet. Den setter vi lik #\texttt{len(listen)}#, som antallet elementer (her tall) i listen.

For-løkken vi bruker kan vi beskrive med pseudokode slik:

for hver verdi i listen:
#\quad#øk sum med tall

Oversatt til python-kode blir det slik:

#\texttt{for verdi in listen:}#
#\quad \texttt{sum += verdi}#

Vi kan forklare de fire rundene i #\texttt{for}#-løkken slik:

  1. Det første tallet i lista er 2. Sum blir satt lik #\texttt{0 + 2 = }\color{red}{\texttt{2}}#
  2. Det neste tallet er 8. Sum blir nå satt lik #\color{red}{\texttt{2}}\texttt{ + 8 = }\color{blue}{\texttt{10}}#
  3. Det neste tallet er 12. Summen blir #\color{blue}{\texttt{10}}\texttt{ + 12 = }\color{brown}{\texttt{22}}#
  4. Det neste tallet er 30. Summen blir #\color{brown}{\texttt{22 }}##\texttt{+ 30 = 52}#

Nå vi har gått gjennom alle tallene i listen, og har funnet summen. Da kan skrive ut summen og gjennomsnittet. Hele koden med resultat ser du nedenfor.

listen = [2, 8, 12, 30]
sum = 0
N = len(listen)
for verdi in listen:
sum += verdi
print("Summen er", sum)
print("Gjennsomsnittet er",round(sum/N,2))

Resultat:
Summen er 52
Gjennomsnittet er 13.0

Husk at gjennomsnittet er summen delt på antall verdier.

Merk at vi ikke trenger å definere variabelen #\texttt{tall}# før vi bruker den i for-løkka.

Cappelen Damm Kontakt: cda-matematikk@cappelendamm.no | Hva er Student? | Personvernerklæring | Rettigheter