Stap 3: Hoofdletters (lower)
Deze stap gebruikt .lower() uit String-methoden.
Typ eens House met een hoofdletter. Het programma zegt
Fout, het is house. Dat voelt oneerlijk: het woord klopt, alleen de
hoofdletter niet. Voor Python zijn "House" en "house" twee
verschillende teksten, want een hoofdletter is een ander teken dan een
kleine letter.
Opdracht: hoofdletters tellen niet
Plak je programma uit stap 2 in het veld. Ben je het kwijt, neem dan de oplossing van stap 2.
Reken een antwoord ook goed als er hoofdletters in staan.
Verwachte uitvoer als je House, Tree en CAT typt:
Wat is huis in het Engels? House
Goed.
Wat is boom in het Engels? Tree
Goed.
Wat is kat in het Engels? CAT
Goed.
Je had 3 van de 3 goed.
# Plak hier je programma uit stap 2
Klik hier voor een tip.
De woorden in de dictionary staan allemaal in kleine letters. Wat moet je met het antwoord doen voordat je het vergelijkt? Kijk welke methode in String-methoden daarbij past.
Klik hier voor de oplossing.
woorden = {"huis": "house", "boom": "tree", "kat": "cat"}
goed = 0
for nederlands, engels in woorden.items():
antwoord = input(f"Wat is {nederlands} in het Engels? ")
if antwoord.lower() == engels:
print("Goed.")
goed += 1
else:
print(f"Fout, het is {engels}.")
print(f"Je had {goed} van de {len(woorden)} goed.")
Uitvoer bij House, Tree en CAT:
Wat is huis in het Engels? House
Goed.
Wat is boom in het Engels? Tree
Goed.
Wat is kat in het Engels? CAT
Goed.
Je had 3 van de 3 goed.
.lower() verandert antwoord zelf niet: hij geeft een nieuwe tekst in
kleine letters, en die vergelijk je.
Er gaat iets mis
Elk antwoord is fout, ook house.
Oorzaak: je schreef antwoord.lower zonder haakjes. Dan roep je de
methode niet aan, en vergelijk je de methode zelf met "house". Een
methode is nooit gelijk aan een tekst, dus het antwoord is altijd fout.
Oplossing: zet de haakjes erachter: antwoord.lower().
Kopieer je programma voordat je verdergaat: de editor bewaart het niet.
Door naar stap 4: de fouten opnieuw.