Gentagelse

Python kan gentage en del af koden – enten et antal bestemte gange eller så længe en bestemt betingelse er opfyldt.

For løkke

Først skal Python tælle lidt for os. Prøv følgende Python kode

# Python: eks2-5-1.py
# En loekke

# Foerste for løkke
for tal in range(1, 5):
    print(tal)

Hvad skriver den?

Dette hedder løkke og den gentager koden 4 gange, og skriver hvilket nummer den er kommet til. For-løkken bliver anvendt, når antallet af gentagelser er kendt. I næste afsnit bruger vi en løkke når antallet af gange koden skal køres ikke er kendt.

For-løkken kan bruges til et sjovt lille forsøg, og se hvor hurtige computere er til at tælle. Følgende lille kode tæller til 1.000.000 (altså en million!). Hvor lang tror du at skal bruge på det? Og computeren?

# Python: eks2-5-3.py
# Tael til en million
i = 0

for tal in range(0,1000000):
    i = i + 1

print(i)

Min computer var ca. 0,3 sekunder om (og den er langsom). Hvis et menneske skal tælle og bruge to sekunder, hver gang der skal lægges en til vil det tage 11 dage og 14 timer (uden pauser til at sove eller spise).

Det viser hvor at computere er millioner af gange hurtigere end mennesker til at lave simple beregninger.

# Python: eks2-5-3.py
# Loekker inde i hinanden

# Ydre for
for tal1 in range(0,10):
    # indre for
    for tal2 in range(1,11):
        resultat = tal1*10+tal2
        # print tal og lav en tabulator
        print(str(resultat), end="\t")
    # Ny linje
    print(" ")

Python koden har to for løkke inde i hinanden. Den første løkke sætter tal1 fra 0 til 9, og inde i den kører en løkke som sætter tal2 fra 1-10. Inde i de to løkker bliver lavet en lille beregning, som sætter tal1 til 1. ciffer i to cifferet tal og tal2 til andet ciffer (ved tal1 * 10 + tal2)

Den næste linje udskriver resultatet på skærmen ved lave det til en streng, og så sker noget nyt. print slutter med end = “\t”, som betyder tabulator (altså et fast antal mellemrum på skærmen) men print skal ikke lave en ny linje.

Når den inderste løkke (den med tal2) er færdig laver python en ny line med print.

Du har lært

  • At en for løkke sørger for noget Python kode kører et bestemt antal gange
  • At for løkke kan være inde i hinanden
  • At computere kan tælle meget, meget hurtigt

Opgaver

  1. I programmet som tæller til en million skriver programmet kun det endelige resultat. Hvor lang tid tager programmet at afvikle, hvis det skal skrive tallene 1 til 1.000.000?
  2. Udvid programmet med to for løkker med en mere, så du får tre til at køre inde hinanden