Stap 4: Eén fles is anders (if en elif)
Deze stap gebruikt if en elif, uit If en else en And, or en elif.
Het lied moet op twee plekken anders:
- bij één fles: "1 groene fles staat" in plaats van "1 groene flessen staan";
- als de laatste fles valt: "dan staan er geen groene flessen meer".
Een handige truc om te testen: laat de loop bij 3 beginnen in plaats van bij 10. Dan zie je de lastige coupletten meteen, zonder eerst zeven gewone te lezen.
Opdracht: een kloppend lied
Maak twee variabelen die per ronde de goede tekst krijgen:
nu: wat er aan het begin van het couplet aan de muur staat, zoals"3 groene flessen staan"of"1 groene fles staat".straks: wat er na de val overblijft, zoals"staan er 2 groene flessen","staat er 1 groene fles"of"staan er geen groene flessen meer".
Het couplet print ze al. Jij schrijft de if-regels die ze vullen.
for flessen in range(3, 0, -1):
nu = f"{flessen} groene flessen staan"
straks = f"staan er {flessen - 1} groene flessen"
# schrijf hier je if-regels
print(f"{nu} aan de muur,")
print(f"{nu} aan de muur,")
print("en als er één groene fles valt,")
print(f"dan {straks} aan de muur.")
print()Klik hier voor een tip.
De gewone tekst staat er al. Je hoeft alleen de uitzonderingen te
schrijven: een if die nu of straks een andere waarde geeft,
overschrijft de gewone. Voor nu is er één uitzondering: flessen == 1.
Voor straks zijn er twee: er blijft er één over (flessen - 1 == 1) of
er blijft niets over (flessen - 1 == 0). Twee uitzonderingen op dezelfde
variabele schrijf je met if en elif.
Klik hier voor de oplossing.
for flessen in range(3, 0, -1):
nu = f"{flessen} groene flessen staan"
straks = f"staan er {flessen - 1} groene flessen"
if flessen == 1:
nu = "1 groene fles staat"
if flessen - 1 == 1:
straks = "staat er 1 groene fles"
elif flessen - 1 == 0:
straks = "staan er geen groene flessen meer"
print(f"{nu} aan de muur,")
print(f"{nu} aan de muur,")
print("en als er één groene fles valt,")
print(f"dan {straks} aan de muur.")
print()
Uitvoer:
3 groene flessen staan aan de muur,
3 groene flessen staan aan de muur,
en als er één groene fles valt,
dan staan er 2 groene flessen aan de muur.
2 groene flessen staan aan de muur,
2 groene flessen staan aan de muur,
en als er één groene fles valt,
dan staat er 1 groene fles aan de muur.
1 groene fles staat aan de muur,
1 groene fles staat aan de muur,
en als er één groene fles valt,
dan staan er geen groene flessen meer aan de muur.
Klopt het? Zet de 3 dan terug op 10.
Door naar stap 5: een functie voor één couplet.