Als developer die JavaScript en PHP kent en overstapt naar Python, wil ik weten hoe Python omgaat met blokken, types en namen, zodat ik mijn programmeerkennis kan gebruiken zonder vast te lopen op foutmeldingen die ik niet ken.
Je telt tekst op bij een getal. JavaScript zegt "35".
PHP zegt 8.
Python crasht. Drie talen, drie antwoorden. Wie heeft gelijk?
"3" + 5
JavaScript en PHP raden wat je bedoelt. Ze raden alleen niet hetzelfde. En jij ziet nergens dát er geraden is.
Python raadt niet. Tekst en getallen zijn twee verschillende dingen. Optellen mag dus niet:
>>> "3" + 5
TypeError: can only concatenate str (not "int") to str
Wil je weten met welk type je werkt? Vraag het met type():
type("3") # <class 'str'>
type(5) # <class 'int'>
Probeer het zelf. Typ deze regels één voor één. Kijk goed naar het antwoord.
"3" + 5 — de crash uit deze taak.3 + 5 — twee getallen. Werkt gewoon."3" + "5" — twee strings. Werkt ook. Maar kijk goed naar de uitkomst.type("3") — welk type is dit?type(5) — en dit?"ab" * 3 — de uitzondering.Maak een nieuw Python-script. Laat het bewust crashen met een TypeError. Plak bijvoorbeeld
een batterijpercentage met een + aan een stuk tekst.
Lees de foutmelding goed. Zoek daarna met type() uit welke twee types botsen. Los het nog
niet op. Dat doe je in US2.
Acceptatiecriteria
TypeError door tekst en een getal op te tellen.type().TypeError en een
ValueError.