Programmeringskurs: 3.2 for-løkker
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:
- Det første tallet i lista er 2. Sum blir satt lik #\texttt{0 + 2 = }\color{red}{\texttt{2}}#
- Det neste tallet er 8. Sum blir nå satt lik #\color{red}{\texttt{2}}\texttt{ + 8 = }\color{blue}{\texttt{10}}#
- Det neste tallet er 12. Summen blir #\color{blue}{\texttt{10}}\texttt{ + 12 = }\color{brown}{\texttt{22}}#
- 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.
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.