0%

Python buiten de browser · oefening

Een bestand overleeft de uitvoering

Een naam in de REPL hoort bij één interpretersessie. Een opgeslagen .py-bestand is anders: het bewaart broncode, de instructies die een volgende uitvoering later kan lezen.

Houd drie begrippen uit elkaar:

  • het bestand wacht als opgeslagen instructies;

  • een interpreter leest en voert die instructies uit;

  • een uitvoering gebruikt tijdelijk geheugen terwijl de instructies worden uitgevoerd. Dat is het procesmodel voor cursisten uit de vorige les.

De site-editor begint met bekende syntaxis:

runs_in_this_execution = 0
runs_in_this_execution += 1

print()

Maak de printregel af zodat het programma dit toont:

This run counts to 1.

Gebruik een f-string die runs_in_this_execution leest. Typ het antwoord niet als een vaste zin. Voer de opgeslagen broncode tweemaal uit. Elke uitvoering toont dezelfde regel, omdat de eerste toewijzing de naam telkens opnieuw vanaf nul opbouwt. Een waarde veranderen in het geheugen van één uitvoering herschrijft de opgeslagen broncode niet.

Dit is het hele idee waarvoor dit hoofdstuk bestaat. Daarom nog een keer in gewone woorden: het bestand onthoudt; de uitvoering niet.

Nog één versieopmerking voordat we verdergaan: Python Land voert deze cursus uit op Python 3.13 en het project dat je in hoofdstuk 4 downloadt werkt op Python 3.10 of nieuwer. Dit kleine programma werkt op al die versies.

Hierna leert hoofdstuk 2, Genoeg van de opdrachtregel, je over terminals, werkmappen en paden, en ten slotte hoe python report.py een interpreter met een bestand verbindt. Hoofdstuk 3 behandelt geïsoleerde omgevingen en pakketten. Hoofdstuk 4 behandelt downloaden, de editor inrichten, lokaal uitvoeren en lokaal controleren. Deze les verifieert geen van die latere stappen.

Je voert het opgeslagen programma tweemaal uit en het toont beide keren This run counts to 1.. Waarom de tweede keer niet 2?

Wat is het verschil tussen het bestand en de uitvoering?

Loop je vast met de f-string? Vraag Monty: “Wat is het verschil tussen print(f"...{runs_in_this_execution}") en het getal rechtstreeks typen?” Dat verschil is precies waar deze oefening om draait.

Opdracht

Maak de laatste aanroep van print af met een f-string die runs_in_this_execution leest. Voer de opgeslagen broncode tweemaal uit en bekijk telkens exact dezelfde regel: This run counts to 1.