Oefeningen structuren (herhaling en keuze)¶
Bij de meeste oefeningen voorspel je de uitvoer vóór je de cel uitvoert. Schrijf je voorspelling op, voer daarna de cel uit en vergelijk.
- Staat er dat de gebruiker iets typt? Typ dan precies dat wanneer de cel om invoer vraagt.
- Soms geeft de code een foutmelding: schrijf dan gewoon "fout" (welk soort fout hoef je niet te vermelden).
- Bij Zoek de fout! staat er precies één fout in de code. Verbeter ze zodat de gewenste uitvoer verschijnt.
- De cellen moeten elk apart een correcte uitvoer geven, zonder dat de voorgaande cellen reeds uitgevoerd werden.
Oefening 1¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
for i in range(2, 11, 3):
print(i, end=" ")
2 5 8
Oefening 2¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
woorden = ["zon", "maan", "ster"]
for woord in woorden:
print(woord[0] * 3)
zzz mmm sss
Oefening 3¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
product = 1
for i in range(1, 5):
product *= i
print(product)
24
Oefening 4¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
som = 0
for i in range(1, 4):
som += i
print(som)
1 3 6
Oefening 5¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
teller = 10
while teller > 0:
teller -= 3
print(teller)
-2
Oefening 6¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
x = 1
while x < 50:
x = x * 3
print(x, end=" ")
3 9 27 81
Oefening 7¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
Voorspel de uitvoer voor elk van deze invoeren: 18 / 12 / 5.
leeftijd = int(input("Hoe oud ben je? "))
if leeftijd >= 18:
print("volwassen")
elif leeftijd >= 16:
print("tiener")
else:
print("kind")
Hoe oud ben je? 16 tiener
Oefening 8¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
punten = 85
if punten >= 50:
print("geslaagd")
elif punten >= 80:
print("onderscheiding")
else:
print("niet geslaagd")
geslaagd
Oefening 9¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
getal = 12
if getal % 2 == 0:
print("deelbaar door 2")
if getal % 3 == 0:
print("deelbaar door 3")
if getal % 5 == 0:
print("deelbaar door 5")
deelbaar door 2 deelbaar door 3
Oefening 10¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
temperaturen = [12, 18, 21, 9, 25]
warm = 0
for t in temperaturen:
if t > 20:
warm += 1
print(f'Er zijn {warm} warme dagen.')
Er zijn 2 warme dagen.
Oefening 11¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
getallen = [7, 3, 12, 5, 13, 11, 8]
grootste = getallen[0]
print(f'Tussenstand: grootste = {grootste}')
for g in getallen:
if g > grootste:
grootste = g
print(f'Tussenstand: grootste = {grootste}')
print(f'Het grootste getal van de lijst is {grootste}.')
Tussenstand: grootste = 7 Tussenstand: grootste = 12 Tussenstand: grootste = 13 Het grootste getal van de lijst is 13.
Oefening 12¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
De gebruiker typt: lepel
woord = input('Geef een woord:')
omgekeerd = ""
for letter in woord:
omgekeerd = letter + omgekeerd
print(f'Het omgekeerde woord is {omgekeerd}.')
if omgekeerd == woord:
tussenvoegsel = 'een'
else:
tussenvoegsel = 'geen'
print(f'Het woord is {tussenvoegsel} palindroom.')
Geef een woord:lepel Het omgekeerde woord is lepel. Het woord is een palindroom.
Oefening 13¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
De gebruiker typt achtereenvolgens: 4, dan 7, dan -2, dan 0.
totaal = 0
getal = int(input("Geef een getal (0 = stop): "))
while getal != 0:
totaal += getal
getal = int(input("Geef een getal (0 = stop): "))
print(f"Totaal: {totaal}")
Geef een getal (0 = stop): 4 Geef een getal (0 = stop): 7 Geef een getal (0 = stop): 2 Geef een getal (0 = stop): 0 Totaal: 13
Oefening 14¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
De gebruiker typt achtereenvolgens: Python, dan pyhton, dan python.
wachtwoord = ""
pogingen = 0
while wachtwoord != "python":
wachtwoord = input("Wachtwoord: ")
pogingen += 1
print(f"Gelukt na {pogingen} pogingen.")
Wachtwoord: java Wachtwoord: python Gelukt na 2 pogingen.
Oefening 15¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
De gebruiker typt: DwEngO.
woord = input("Geef een woord: ")
hoofdletters = 0
for letter in woord:
if letter == letter.upper():
hoofdletters += 1
print(hoofdletters)
Geef een woord: lepel 0
Oefening 16¶
Voorspel de uitvoer. Verwacht je een foutmelding? Schrijf dan gewoon "fout".
#verdieping = bonuspunt
for i in range(1, 3):
for j in range(1, 4):
print(i * j, end=" ")
print()
1 2 3 2 4 6
Oefening 17¶
Zoek de fout! Deze code bevat precies één syntax-fout. Verbeter ze.
Gewenste uitvoer:
0
1
2
for i in range(3)
print(i)
Cell In[18], line 1 for i in range(3) ^ SyntaxError: expected ':'
Oefening 18¶
Zoek de fout! Deze code bevat precies één syntax-fout. Verbeter ze.
Gewenste uitvoer: groot
getal = 5
if getal > 3:
print("groot")
Cell In[19], line 3 print("groot") ^ IndentationError: expected an indented block after 'if' statement on line 2
getal = 7
if getal = 7:
print("zeven")
Cell In[20], line 2 if getal = 7: ^ SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
Oefening 20¶
Zoek de fout! Deze code bevat precies één fout. Verbeter ze.
Gewenste uitvoer: Niet zo warm.
De gebruiker typt: 20.
temperatuur = input("Hoeveel graden is het? ")
if temperatuur > 25:
print("Warm!")
else:
print("Niet zo warm.")
Hoeveel graden is het? 28
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[21], line 2 1 temperatuur = input("Hoeveel graden is het? ") ----> 2 if temperatuur > 25: 3 print("Warm!") 4 else: 5 print("Niet zo warm.") TypeError: '>' not supported between instances of 'str' and 'int'
Oefening 21¶
Zoek de fout! Deze code bevat precies één fout. Verbeter ze.
Gewenste uitvoer: Mooi!
De gebruiker typt achtereenvolgens: nee, dan ja.
while antwoord != "ja":
antwoord = input("Ben je klaar? ")
print("Mooi!")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[22], line 1 ----> 1 while antwoord != "ja": 2 antwoord = input("Ben je klaar? ") 3 print("Mooi!") NameError: name 'antwoord' is not defined
Oefening 22¶
Zoek de fout! Deze code bevat precies één fout. Verbeter ze.
Gewenste uitvoer:
An
Bo
Cas
namen = ["An", "Bo", "Cas"]
i = 0
while i <= len(namen):
print(namen[i])
i += 1
An Bo Cas
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) Cell In[23], line 4 1 namen = ["An", "Bo", "Cas"] 2 i = 0 3 while i <= len(namen): ----> 4 print(namen[i]) 5 i += 1 IndexError: list index out of range
Oefening 23¶
Zoek de fout! Deze code bevat precies één fout. Verbeter ze.
Gewenste uitvoer:
0
1
2
3
4
Let op: voer deze cel pas uit nadat je ze verbeterd hebt! (Anders: Kernel - Interrupt/Restart.) Deze tip krijg je niet op de papieren toets. ;-)
i = 0
while i < 5:
print(i)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... (nog 7400 regels weggelaten)
⚠ Deze cel stopt nooit (oneindige lus). De uitvoering werd na 5 seconden onderbroken.
getallen = [3, 8, 5]
totaal = 0
for g in getallen:
totaal = g
print(totaal)
5
Oefening 25¶
Zoek de fout! Deze code bevat precies één fout. Verbeter ze.
Gewenste uitvoer: 1 2 3 4 5
# toon de getallen 1 tot en met 5
for i in range(1, 5):
print(i, end=" ")
1 2 3 4