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 1: Accolades, puntkomma's en indentatie

Je typt je vertrouwde accolades en puntkomma's. Python weigert. In JavaScript en PHP houd je code bij elkaar met {}. Python doet dat met spaties. Dat is even wennen, maar je code wordt er leesbaarder van.

Drie dingen die anders zijn

In JavaScript / PHPIn Python
Blok tussen { en }Blok door in te springen
Regel eindigt op ;Regel eindigt gewoon
let, var, const, $Alleen de naam

Typ je een dubbele punt (:)? Dan moeten de regels eronder naar rechts. Dat heet indentatie. Je gebruikt daarvoor altijd 4 spaties.

temperature = 50

if temperature < 70:
    print("Temperature OK")     # 4 spaties: hoort bij de if
    print("Fan speed normal")   # ook bij de if

print("Done")                   # geen spaties: staat weer los

Spring je niet meer in? Dan is het blok klaar. De regel met print("Done") draait dus altijd. Ook als de temperatuur te hoog is.

Python raadt niet wat je bedoelt
Gebruik je 3 spaties? Of meng je tabs en spaties? Dan stopt je programma direct met een IndentationError.
⌨ Oefenomgeving: Spatie Checker

Python is streng op spaties. Probeer het hieronder zelf. De ... betekent dat je in een blok zit. Typ de spaties echt met je spatiebalk.

  1.     print("OK") — begin met 4 spaties. Druk op Enter.
  2.   print("OK") — nu met 2 spaties. Kijk wat er gebeurt.
  3. print("OK") — nu zonder spaties.
Python 3.11 REPL Simulator.
>>> if temperature < 70:
... 

Repareer de kapotte code

Hieronder staat code die niet werkt. De vorige programmeur snapte de spaties niet. Kopieer de code naar een nieuw Python-script en maak hem werkend.

De bedoeling: de teksten over de controle, het inlezen en het wegschrijven komen alleen op het scherm als de invoer klopt. De tekst Done komt er altijd bij te staan.

is_valid = True
if is_valid == True:
print("Input check passed")
  print("Reading file")
    print("Writing to database")
else:
print("Invalid input")
print("Done")

Acceptatiecriteria

  • Je script draait zonder IndentationError of SyntaxError.
  • Je gebruikt overal 4 spaties per niveau. Dus geen 2, geen 6, en geen tabs.
  • Je hebt getest dat Done altijd verschijnt. Zet is_valid een keer op True en een keer op False.
  • Bovenaan je script staat in commentaar wat PEP 8 is. En waarom dat handig is als je samenwerkt.