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.
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.