Ga terugOnderzoekend Python leren
Behaal punten door uitdagingen te voltooien.
Maak voor elke uitdaging een nieuw bestand, zodat je progressie later gecontroleerd kan worden.
Zie de presentatie voor meer details.
Voorbereiding
- Download en installeer Python 3.13 en Visual Studio Code, indien deze nog niet geïnstalleerd zijn
- Pak de materialen uit in een nieuwe map
- Open de nieuwe map in Visual Studio Code
- Installeer de libraries genoteerd in
requirements.txt met het commando pip install -r requirements.txt
Je kan een terminal openen met de snelkoppeling Ctrl+`.
Je kan een script uitvoeren met het commando python <script path>.
Uitdagingen
01_cli
01_hello_world.py
- Verander de code zodat het je eigen naam print.
- Print de tekst "C:\Program Files".
- Uit welke tokens bestaat het voorbeeld, en waarvoor worden deze gebruikt? (zie https://docs.python.org/3/library/token.html)
02_operators.py
- Print het resultaat van de plussom, minsom, keersom en deelsom van A en B (in deze volgorde).
- Print het resultaat van de deelsom en modulosom.
- Print het resultaat van A / B * B + A % B. Leg elke stap van de som uit met comments.
- Gebruikt % en == om te printen of een nummer even of oneven is. Doe dit voor A en B.
03_echo.py
- Laat de gebruiker de naam van hun gesprekspartner invoeren.
- Laat de gesprekspartner reageren in alleen hoofdletters.
- Zorg dat het bericht "bye" het gesprek stopt.
04_calculator.py
- Voeg extra opties toe om de tesksversie van de operators te gebruiken (bijvoorbeeld "plus" of "min").
- Verwijder de
float(...) function calls, waarbij je tekst binnen de haakjes behoud, en kijk wat er gebeurt.
- Vervang de
if-, elif-, else-statements door match- en case-statements.
- Gebruik een dictionary om de juiste operators te koppelen aan de juiste functies.
- De functies die Python gebruiken voor sommen zijn een onderdeel van
int. Die van + is bijvoorbeeld int.__add__. Versimpel het toevoegen van operaties door de bestaande functies te vervangen door deze.
05_word_scrambler.py
- Selecteer je eigen woorden in de
words lijst.
- Zorg dat het willekeurige woord gekozen wordt door
random.randint(...) in plaats van random.choice(...).
- Zorg dat de word scrambler opnieuw draait wanneer het juiste woord is geraden.
06_data_store.py
- Implementeer een
exit actie waardoor de loop onderbroken wordt.
- Print de waarden in de dictionary uit nadat de loop is beëindigd in het format
{key} -> {value}.
- Implementeer een
clear actie waardoor alle keys en values uit de dictionary gehaald worden.
- Implementeer een
save en load actie waardoor data met behulp van json.dump, json.load en open opgeslagen en geladen wordt.
final_blackjack.py
- Voeg een nieuwe kaart toe aan het deck. Je mag zelf de naam, zeldzaamheid en waarde verzinnen.
- Implementeer een geld- en inzetsysteem. De speler start met $50, mag zelf hun inzet kiezen, en kan dit verliezen of verdubbelen.
- Implementeer een "double" actie. De speler verdubbelt tijdens het spel hun inzet, en trekt één kaart. Hierna mogen zij geen acties meer uitvoeren.
- De game print berichten in 2 formats:
~ {message} ~ voor systeemberichten, en {actor_name}: {message} voor berichten gestuurd door de dealer of speler. Implementeer een announce functie die berichten in het eerste format print, en een say functie die berichten in het tweede format print.
02_http
01_hello_world.py
- Voeg een GET-route toe voor je eigen bericht.
- Voeg een error handler toe voor Not Found die de relevante afbeelding van https://http.dog/ of https://http.cat/ laat zien.
02_link_mapping.py
- Voeg je favoriete links toe, en volg de gemapde versie hiervan.
- Gebaseerd op query parameter
?raw, zorg dat de browser de link als tekst toont in plaats van dat deze een redirect doet.
03_link_mapper.py
- Voeg wachtwoordbeveiliging doen door middel van een extra
<input type="password"> HTML tag, en een == vergelijking. Geef de status code voor "Unauthorized" terug in het geval dat het wachtwoord fout is.
04_link_shortener.py
- Maak de URLs korter door Base85, Base64, Base62, Base36 of Base32 te gebruiken bij het genereren van een link.
05_file_share.py
- Laat uploaders zelf een wachtwoord instellen. Bij het bezoeken van het gedeelde bestand krijgen ze een HTML form te zien, waarin ze dit wachtwoord in moeten vullen. Bij het invullen van het correcte wachtwoord start de download, anders krijgen ze een "Unauthorized" pagina te zien.
final_media_converter.py
- Zorg dat het programma werkt door FFmpeg te installeren en beschikbaar te stellen op je
PATH.
- Toon beide de volledige naam en de afgekortte naam van elk format in de dropdown.
03_from_scratch.py
- Bouw een eigen script, en voer deze uit! Het kan zo simpel of complex zijn als je zelf wilt.