0%

Hoofdstuk 13

Hoe ga je verder?

Van eerste instructies naar complete programma’s

Aan het begin van deze cursus was twee instructies met print() uitvoeren een echte prestatie. Je moest leren wat code was, waar je die neerzette, hoe je die uitvoerde en waar de uitvoer verscheen.

Je hebt net een interactief quizprogramma afgerond dat je over meerdere lessen hebt opgebouwd.

Die afstand telt. Je ziet vooruitgang makkelijk over het hoofd wanneer elke les maar één behapbaar idee toevoegt.

Je kunt werken met waarden en gegevens

Je kunt:

  • strings, gehele getallen, floats en booleaanse waarden onderscheiden;

  • waarden opslaan in beschrijvende variabelen;

  • nieuwe waarden berekenen;

  • leesbare berichten bouwen met f-strings;

  • tekst bekijken en bewerken;

  • geordende items modelleren met lijsten;

  • records met benoemde velden modelleren met dictionaries;

  • de paren herkennen die .items() van een dictionary levert en herkennen wanneer de unieke waarden van een set bij een behoefte passen.

Dit zijn geen losse syntaxisfeitjes. Ze laten een programma informatie weergeven.

Je kunt bepalen wat een programma doet

Je kunt:

  • paden kiezen met if, elif en else;

  • voorwaarden combineren en omkeren;

  • strings, lijsten en dictionaryrecords doorlopen;

  • herhalen totdat een voorwaarde verandert;

  • break en continue bewust gebruiken;

  • invoer valideren en herstellen van verwachte omzettingsfouten.

Deze middelen veranderen opgeslagen informatie in gedrag.

Je kunt organiseren en onderzoeken

Je kunt:

  • functies met parameters definiëren;

  • waarden aan aanroepers teruggeven;

  • lokaal werk binnen een functie houden;

  • meerdere gerichte functies combineren;

  • tracebacks vanaf onderaan lezen;

  • een fout reproduceren met een klein voorbeeld;

  • aannames onderzoeken in plaats van gokken;

  • een ontbrekende optionele waarde onderscheiden van een geschonden gegevensafspraak.

Je kunt ook plannen voordat je code schrijft:

  • de behoefte en de kleinste nuttige omvang beschrijven;

  • eisen schrijven die gecontroleerd kunnen worden;

  • voorbeelden onafhankelijk uitrekenen;

  • randgevallen kiezen;

  • verwachtingen vastleggen met asserties;

  • pseudocode schrijven;

  • herstructureren terwijl je het gedrag beschermt.

Je eindproject brengt de cursus samen

Het quizprogramma gebruikt:

  • een dictionary met daarin een lijst met vraagdictionaries;

  • strings opschonen en vergelijken;

  • invoervalidatie met een herhaallus;

  • functies met afgebakende verantwoordelijkheden;

  • een lus en een variabele die de score bijhoudt;

  • teruggegeven booleaanse waarden en gehele getallen;

  • een startpunt dat testbaar blijft;

  • testpaden met normale, verkeerde, opgeschoonde en lege invoer.

De prestatie zit niet in één regel. De prestatie is dat je kunt uitleggen hoe die onderdelen samenwerken.

Vaardigheid groeit na het eerste begrip

Misschien zoek je leestekens, methodenamen of voorbeelden nog op. Ervaren programmeurs doen dat ook.

Een nuttigere maatstaf is of je het volgende kunt:

  1. zeggen wat het programma moet doen;

  2. een kleine volgende stap kiezen;

  3. die uitvoeren;

  4. het resultaat vergelijken met een verwachting;

  5. onderzoeken wat er aan de hand is wanneer ze verschillen.

Dat proces is een basis die je kunt blijven gebruiken wanneer programma’s groter worden.

Welke uitspraak beschrijft het best hoe het quizprogramma de lesstof gebruikt?

Wat drukt dit programma af?

def count_long_words(words, minimum):
    count = 0

    for word in words:
        if len(word) >= minimum:
            count += 1

    return count


items = ["tea", "coffee", "water"]
print(count_long_words(items, 5))