Ga naar hoofdinhoud

6b Range met start en stappen

Met range(n) herhaal je n keer, en je begint altijd bij 0. Geef je range een begin-getal en een stapgrootte mee, dan kies je zelf waar je begint en hoe groot de stappen zijn.

range(start, stop)​

range() kan een begin- én eindgetal krijgen:

for i in range(1, 6):
print(i)

Uitvoer:

1
2
3
4
5

range(1, 6) begint bij 1 en stopt vóór 6. Het einde doet zelf nooit mee, en daar trapt bijna iedereen een keer in.

range(start, stop, step)​

Met een derde argument bepaal je de stapgrootte:

for i in range(0, 11, 2):
print(i)

Uitvoer:

0
2
4
6
8
10

Met stappen van 2 krijg je de even getallen. Een negatieve stap telt achteruit:

for i in range(10, 0, -1):
print(i)

Dit print 10, 9, 8, ..., 1. De stopwaarde 0 doet ook hier niet mee.

for i in range(5, 0):
print(i)
Voorspel
Welke getallen zet dit programma op het scherm?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

Eén te weinig

for i in range(1, 10):
print(i)

Je wilde 1 tot en met 10, maar de 10 komt niet op het scherm. De stopwaarde doet niet mee, dus voor 1 tot en met 10 schrijf je range(1, 11).

Delen met /

hoogte = 10
for i in range(hoogte / 2):
print(i)

Uitvoer:

TypeError: 'float' object cannot be interpreted as an integer

/ geeft altijd een kommagetal, ook bij 10 / 2: dat is 5.0. range wil een heel getal. Gebruik //, dat heel deelt: range(hoogte // 2). Zie Delen met rest.


Opdracht 6b.1: Even getallen​

Print de even getallen van 0 t/m 10 met één for-loop.

# Schrijf hier je code
Klik hier voor een tip.

range(0, 11, 2) — begin 0, stop vóór 11, stappen van 2.

Klik hier voor de oplossing.
for i in range(0, 11, 2):
print(i)
for i in range(0, 11, 2):
    print(i)

Opdracht 6b.2: Tafel van 7​

Print de tafel van 7 (van 1 tot en met 10) met een for-loop en een f-string.

Verwachte uitvoer:

7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
...
7 x 10 = 70
# Schrijf hier je code
Klik hier voor een tip.

range(1, 11) geeft 1 t/m 10. F-string: f"7 x {i} = {7 * i}".

Klik hier voor de oplossing.
for i in range(1, 11):
print(f"7 x {i} = {7 * i}")
for i in range(1, 11):
    print(f"7 x {i} = {7 * i}")

Opdracht 6b.3: Driehoek van sterretjes​

Teken met hoogte = 5 een driehoek van sterretjes. Per regel komt er één sterretje bij. Een tekst kun je daarvoor vermenigvuldigen met een getal: print("*" * 3) zet *** op het scherm.

Verwachte uitvoer:

*
**
***
****
*****
# Schrijf hier je code
Klik hier voor een tip.

Laat i lopen van 1 tot en met hoogte met range(1, hoogte + 1), en print in elke ronde "*" * i.

Klik hier voor de oplossing.
hoogte = 5

for i in range(1, hoogte + 1):
print("*" * i)

Met for herhaal je een vast aantal keer. In de volgende les sla je met continue een ronde over. Daarna komen break en de while-loop: doorgaan zolang een voorwaarde True is, ook als je niet weet hoe vaak.

hoogte = 5

for i in range(1, hoogte + 1):
    print("*" * i)