Sprint 1 · First Flight  ·  US1: Van jouw taal naar Python

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.

Taak 2: "3" + 5 — drie talen, drie antwoorden

Je telt tekst op bij een getal. JavaScript zegt "35". PHP zegt 8. Python crasht. Drie talen, drie antwoorden. Wie heeft gelijk?

Dezelfde regel, drie uitkomsten

"3" + 5

JavaScript

"35"
Maakt van 5 tekst

PHP

8
Maakt van "3" een getal

Python

TypeError
Weigert te raden

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
Dit is een feature, geen bug
Een crash zie je meteen. Een verkeerde gok zie je pas als je drone al in de lucht hangt.

Wil je weten met welk type je werkt? Vraag het met type():

type("3")   # <class 'str'>
type(5)     # <class 'int'>
Nog even geduld
In US2 leer je hoe je dit oplost. Hier gaat het er alleen om dát het gebeurt, en waarom.
>_ Oefenomgeving: Crash de interpreter

Probeer het zelf. Typ deze regels één voor één. Kijk goed naar het antwoord.

  1. "3" + 5 — de crash uit deze taak.
  2. 3 + 5 — twee getallen. Werkt gewoon.
  3. "3" + "5" — twee strings. Werkt ook. Maar kijk goed naar de uitkomst.
  4. type("3") — welk type is dit?
  5. type(5) — en dit?
  6. "ab" * 3 — de uitzondering.
Python 3.11 REPL Simulator. Typ je commando en druk op Enter.
>>> 

Jouw Opdracht: Crash en onderzoek

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

  • Je script veroorzaakt een TypeError door tekst en een getal op te tellen.
  • De foutmelding uit je terminal staat als commentaar in je script.
  • Je print van allebei de waarden het type met type().
  • In commentaar leg je uit wat JavaScript en PHP met dezelfde regel doen. En waarom die twee niet hetzelfde antwoord geven.
  • Je kunt uitleggen wat het verschil is tussen een TypeError en een ValueError.