ÖVNINGSUPPGIFT

Uppgift 7 - Utskrifter i loopar

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: While-loopen, For-loopen

Utskrifter i loopar

Nedan visas ett program som skriver ut värden inuti olika loopar. Vad blir utskriften?

# A
n = 0
done = False
while (not done) :
    n = n + 1
    done = n >= 10
    print(n)
# B
k = 2078670162
while (k > 0) :
    print(k)
    k = int(k / 10)
# C
i = 0
while (i < 10) :
    j = 0
    while (j < i) :
        print(j)
        j += 1
    print()
    i += 2
Ledtråd

Fundera över hur variablerna förändras varje iteration av loopen. Exempelvis:

j += 1 # Ökar med 1
i += 2 # Ökar med 2
Svar

A: Förklaring

1
2
3
4
5
6
7
8
9
10

While-loopen körs tills dess att done sätts till True. Varje iteration av loopen ökar värdet på n med 1.

B: Förklaring

2078670162
207867016
20786701
2078670
207867
20786
2078
207
20
2

Programmet skriver ut k och använder sedan int(k / 10) för att kapa decimaldelen mot noll. En variabel kapar inte decimaler automatiskt. För just positiva heltal kan k // 10 undvika omvägen via ett flyttal.

C: Förklaring

0
1

0
1
2
3

0
1
2
3
4
5

0
1
2
3
4
5
6
7

Första iterationen skriver bara en tom rad eftersom i är 0. Därefter ökar i med 2. Den inre loopen kör så länge j < i och skriver j från 0 till i − 1.