Skip to main content

Opdrachten

We springen meteen in het diepe. Jullie hebben nu al veel programmeerervaring (en ervaring met Google en ChatGPT) dus hier gaan we.

Let erop dat ervoor zorgt dat je alles goed begrijpt, begrijp je het niet vraag het dan aan ChatGPT.

Vraag bijvoorbeeld aan ChatGPT "Hoe moet ik inspringen in Python?", of "Kan je een voorbeeld geven van inspringen in Python?"

Inspringen

Allereerst....superbelangrijk, in Python is het inspringen belangrijk. Doe je dit niet op de juiste manier, dan werkt je code niet!

import random

def raad_het_getal():
    willekeurig_getal = random.randint(1, 100)
    aantal_pogingen = 0

    while True:
        gok = int(input("Raad het getal tussen 1 en 100: "))

        if gok == willekeurig_getal:
            print(f"Gefeliciteerd! Je hebt het juiste getal geraden in {aantal_pogingen} poging(en).")
            break
        elif gok < willekeurig_getal:
            print("Te laag! Probeer het opnieuw.")
        else:
            print("Te hoog! Probeer het opnieuw.")

raad_het_getal()

Maak een bestand aan (in VCS of andere editor) en zet het bovenstaande Python programmaatje er in. Voer het programma uit en bestudeer hoe het werkt.

Je ziet na elke : begint er een programma-blok. Op regel 3 begin je met het maken van een functie. Je springt dan in en alles wat op dit niveau is ingesprongen (of verder) hoort bij de functie. Regel 19 is dus de eerste regel die niet meer bij de functie hoort.

Regel 12 en 13 hoort bij de if, 15 bij de else if en 17 bij de else.

Probeer het spel uit.

Er is een klein foutje gemaakt; als je het spel hebt gespeeld dan wordt er gezegd dat je het getal hebt geraden in 0 pogingen.


Opdracht 1

Pas de code (raad een getal) aan zodat als je het getal hebt geraden het aantal pogingen juist wordt afgedrukt.

Tip: om sneller te kunnen testen kan je het spel ook even veranderen in 'Raad een getal tussen 0 en 10'.

Je kunt ChatGPT gebruiken, maar laat het niet al je code genereren, maar vraag kleine stukjes zodat je begrijpt wat er gebeurt.

Inleveren

Aangepaste python code

(nakijken: import random aantal_pogingen while aantal_pogingen aantal pogingen raad)


Opdracht 2

Pas de code aan zodat je na 10 beurten het spel stopt en de gebruiker verteld dat hij het maximale aantal beurten van 10 heeft gehaald. Laat de gebruiker weten wat het getal was en dat hij heeft verloren.

Eis: verander de hiervoor de oneindige loop while true:

Inleveren

Aangepaste python code

(nakijken: import random aantal_pogingen while aantal_pogingen aantal_pogingen  aantal pogingen raad)


Opdacht 3

In Python wordt vaak een API gebruikt. API's geven vaak JSON output, bijvoorbeeld:

{
  "personen": [
    {
      "naam": "Alice",
      "leeftijd": 25,
      "stad": "Amsterdam"
    },
    {
      "naam": "Bob",
      "leeftijd": 32,
      "stad": "Rotterdam"
    },
    {
      "naam": "Charlie",
      "leeftijd": 42,
      "stad": "Utrecht"
    }
  ]
}

Maak dit JSON bestand aan.

En maak het volgende Python script.

import json

# JSON-bestand lezen
with open("data.json") as json_bestand:
    data = json.load(json_bestand)

# Gegevens verwerken
personen = data["personen"]
for persoon in personen:
    naam = persoon["naam"]
    leeftijd = persoon["leeftijd"]
    stad = persoon["stad"]
    print(f"Naam: {naam}, Leeftijd: {leeftijd}, Stad: {stad}")

Controleer of je code werkt.

Zoek op wat het commando import JSON doet.

Opdracht regel 10, 11 en 12 zou je weg kunnen laten, maar dan moet je wel regel 13 aanpassen.

Pas regel 13 aan zodat de code werkt zonder regel 10, 11 en 12.

Inleveren

Aangepaste python code

import json personen for !["personen] !['leeftijd] !["stad"] naam leeftijd stad


Opdracht 4

Pas daarna de JSON aan zodat iedereen een telefoonnummer krijgt en pas de code aan zodat het telefoonnummer wordt afgedrukt. Het telefoonnummer wordt als laatste afgedrukt (dus na de stad).

(import json personen for naam leeftijd stad telefoonnummer)

Inleveren

Aangepaste python code

--