Ga naar hoofdinhoud

Python-oefeningen voor beginners: een praktische gids met antwoorden

Los Python-oefeningen voor beginners op, beginnend met eenvoudige variabelen en opbouwend naar functies, datastructuren en begeleide projecten.
Bijgewerkt 2 okt 2026  · 12 min lezen

Verken met AI

ChatGPTClaudePerplexity

De beste manier om Python te leren is door vertrouwd te raken via herhaling, experimenteren en probleemoplossing. Daarom staat de “leren door te doen”-filosofie centraal in hoe effectieve programmeurs worden opgeleid. 

Code schrijven, fouten maken en die vervolgens oplossen is hoe je jezelf echte vaardigheden aanleert.

In dit artikel werken we een gestructureerde set Python-oefeningen door, speciaal ontworpen voor beginners. De oefeningen beginnen met eenvoudige variabelen en gaan geleidelijk over op functies, datastructuren en kleine dataprojecten.

Voordat je verder leest, hier is een uitdaging voor je: probeer de eerste drie oefeningen in dit artikel meteen op te lossen, zonder vooruit te kijken naar de uitleg. Zelfs als je vastloopt, gebeurt het meeste leren tijdens het proberen.

Als je liever meer begeleiding hebt, controleren DataCamp-cursussen automatisch stap voor stap je syntaxis en logica. Dit voerkomt dat kleine fouten je voortgang blokkeren en is vooral handig voor beginners. Een goed startpunt is de cursus Introduction to Python.

Aan de slag met Python-oefeningen

Voordat je met de oefeningen begint, heb je een basisomgeving nodig om Python-code te schrijven en uit te voeren. Gelukkig is starten eenvoudiger dan ooit.

Voorbereiding

Om Python lokaal te draaien, installeer je een gebruiksvriendelijke code-editor zoals Visual Studio Code.

Een typische setup ziet er zo uit:

vscode

VS Code is een goede plek om te beginnen met coderen, omdat het open-source en gratis te gebruiken is. Je kunt hun downloadpagina bezoeken om de software te downloaden. Ga door en installeer het zodra de download is voltooid.

Als je liever niets installeert, kun je DataLab gebruiken, een browsergebaseerde omgeving waarmee je direct Python- (en SQL-)code kunt uitvoeren. Het is ideaal om tutorials te volgen, snippets te testen en te experimenteren zonder je zorgen te maken over installatieproblemen.

Hoe je deze oefeningen gebruikt

Om je leeropbrengst te maximaliseren, is elke oefening in dit artikel bedoeld om eerst te proberen vóórdat je de oplossing of uitleg leest.

Zo haal je het meeste uit deze oefeningen:

  • Besteed minimaal 15 minuten aan een eigen oplossing proberen
  • Schrijf het volledige programma, ook als het repetitief voelt
  • Bekijk het antwoordenoverzicht pas nadat je het geprobeerd hebt

Een complete antwoordenlijst voor alle oefeningen is beschikbaar in een gelinkte DataLab-werkmap. Zo kun je jouw aanpak vergelijken met een werkende oplossing en alternatieve manieren begrijpen om hetzelfde probleem op te lossen.

exercise solutions

Python-oefeningen voor variabelen, invoer en uitvoer

Laten we beginnen met een paar basisoefeningen die draaien om de bouwstenen: waarden opslaan, gebruikersinvoer lezen en output op het scherm printen.

De persoonlijke begroeting

Om te beginnen bekijken we een eenvoudige Python-oefening die een persoonlijk bericht print.

Oefening

Schrijf een programma dat:

  • De gebruiker om zijn/haar naam vraagt met input()

  • De gebruiker om zijn/haar leeftijd vraagt met input()

  • Een begroetingsbericht print met geformatteerde strings

  • Het jaar berekent waarin de gebruiker 100 wordt

Voordat je code schrijft, helpt het om na te denken over hoe informatie door een simpel programma als dit stroomt. De gebruiker geeft ruwe tekstinvoer, Python slaat die invoer op in variabelen, en jij zet die waarden vervolgens om in iets betekenisvols. 

Deze oefening weerspiegelt veel echte programma’s, waar gebruikersinvoer zelden bruikbaar is in de oorspronkelijke vorm en eerst gevalideerd of geconverteerd moet worden.

Startcode

Hier is wat startcode om je op weg te helpen:

# Task: Ask for the user's name
name = input("Enter your name: ")

# Task: Ask for the user's age (note: input() returns a string)
age_str = input("Enter your age: ")

# Task: Convert age_str to an int
# age = ...

# Task: Calculate the year the user turns 100
# Tip: you'll need the current year
# current_year = ...
# year_turn_100 = ...

# Task: Print a personalized message using an f-string
# print(...)

Belangrijke concepten geoefend

  • input() geeft altijd een string terug

  • Strings omzetten naar gehele getallen met int()

  • Basale rekenkunde met getallen

  • Stringformattering met f-strings

Deze oefening leert je dat gebruikersinvoer vaak eerst moet worden getransformeerd voordat je die in berekeningen kunt gebruiken.

De temperatuurconverter

Laten we je Python-vaardigheden toepassen op wat basis-omrekeningen van eenheden.

Oefening

Schrijf een programma dat:

  • De gebruiker om een temperatuur in Celsius vraagt

  • Deze omzet naar Fahrenheit met de formule: F = (C × 9/5) + 32

  • De omgezette temperatuur print

Startcode

Hier is wat startcode om je op weg te helpen:

# Task: Ask the user for a Celsius temperature
celsius_str = input("Temperature in Celsius: ")

# Task: Convert the input to a float
# celsius = ...

# Task: Apply the conversion formula
# fahrenheit = ...

# Task: Print the result (consider formatting to 1–2 decimal places)
# print(...)

Belangrijke concepten geoefend

  • Zwevendekommagetallen

  • Rekenkundige expressies

  • Typecasting met float()

Deze oefening benadrukt dat niet alle numerieke invoer hele getallen zijn en dat Python natuurlijk met decimalen omgaat.

De swap-logicapuzzel

Deze oefening lijkt triviaal, maar beginners zien variabelen vaak als doosjes die je stap voor stap moet leegmaken en opnieuw vullen. Laten we bekijken hoe we in Python een waardewissel doen.

Oefening

Je krijgt twee variabelen: a = 5 en b = 10. Verwissel hun waarden zonder ze handmatig waarde-voor-waarde te herassignen.

Python biedt een expressievollere manier om over toewijzing na te denken, waarbij waarden in één bewerking kunnen worden uitgepakt en opnieuw toegewezen.

Startcode

Hier is wat startcode om je op weg te helpen:

a = 5
b = 10

# Task: Swap a and b
# Hint: Try a temporary variable first.
# Then try the Pythonic approach (tuple unpacking).

# Task: Print the swapped values to verify
# print("a:", a)
# print("b:", b)

Belangrijke concepten geoefend

  • Variabeletoewijzing
  • Tijdelijke variabelen versus tuple-unpacking

Dit introduceert tuple-unpacking, een functie die Python zowel beknopt als expressief maakt.

Voor meer basisinformatie, bekijk onze Python-cheatsheet.

Python-oefeningen voor controlflow en logica

Controlflow laat je programma’s beslissingen nemen en acties herhalen op basis van voorwaarden.

De oneven- of evenchecker

Een veelvoorkomend gebruik van de modulo-operator is een oneven/evenscheck. Laten we dit hieronder proberen.

Oefening

Schrijf een programma dat:

  • De gebruiker om een getal vraagt

  • De modulo-operator % gebruikt

  • Print of het getal even of oneven is

Startcode

Hier is wat startcode om je op weg te helpen:

# Task: Ask the user for a number
num_str = input("Enter a whole number: ")

# Task: Convert to int
# num = ...

# Task: Use modulo (%) to decide even vs odd
# if ...:
#     print("Even")
# else:
#     print("Odd")

Belangrijke concepten geoefend

Dit is vaak het eerste voorbeeld waarin beginners zien hoe voorwaarden het gedrag van programma’s sturen.

De klassieke FizzBuzz-uitdaging

Een veelvoorkomende programmeeruitdaging die velen doen, is de FizzBuzz-challenge. Laten we bekijken wat deze oefening inhoudt.

Oefening

Print getallen van 1 tot en met 100 met de volgende regels:

  • Veelvouden van 3 printen Fizz

  • Veelvouden van 5 printen Buzz

  • Veelvouden van beide printen FizzBuzz

Deze oefening traint je om zorgvuldig na te denken over beslisbomen en randgevallen, een cruciale vaardigheid bij het schrijven van echte programma’s.

Startcode

Hier is wat startcode om je op weg te helpen:

# Task: Loop from 1 to 100
for n in range(1, 101):
    # Task: Check multiples of 3 AND 5 first
    # if ...:
    #     print("FizzBuzz")

    # Task: Then multiples of 3
    # elif ...:
    #     print("Fizz")

    # Task: Then multiples of 5
    # elif ...:
    #     print("Buzz")

    # Task: Otherwise, print the number
    # else:
    #     print(n)
    pass

Belangrijke concepten geoefend

  • for-lussen

  • Volgorde van voorwaarden

  • Logische operatoren

Deze oefening is een rite de passage voor programmeurs en wordt vaak gebruikt om gestructureerd denken in controlflow te onderwijzen. Lees meer over lussen in onze Python-lus-tutorial.

Het raadspel

Deze oefening introduceert interactieve programma’s die dynamisch reageren op gebruikersinvoer.

Oefening

Schrijf een programma dat:

  • Een willekeurig getal genereert (random importeren)

  • Een while-lus gebruikt om om gokjes te vragen

  • Na elke gokfeedback "Too high" of "Too low" print

  • Stopt wanneer het juiste getal is geraden

Dit is vaak de eerste oefening waarin beginners een programma ervaren dat interactief aanvoelt in plaats van lineair. In tegenstelling tot eerdere scripts die van boven naar beneden draaien en afsluiten, blijft dit programma lopen totdat aan een voorwaarde is voldaan.

De belangrijkste conceptuele stap hier is begrijpen wanneer en hoe een lus wordt beëindigd.

Startcode

Hier is wat startcode om je op weg te helpen:

import random

# Task: Pick a random number in a reasonable range
# target = random.randint(1, 100)

# Task: Use a while loop to keep asking until correct
# while ...:
#     guess_str = input("Your guess (1–100): ")
#     # guess = ...
#     # if guess > target:
#     #     print("Too high")
#     # elif guess < target:
#     #     print("Too low")
#     # else:
#     #     print("Correct!")
#     #     break

Belangrijke concepten geoefend

  • Modules importeren (random)

  • while-lussen

  • Voorwaarden om lussen te beëindigen

Python-oefeningen voor lijsten, lussen en iteratie

Lijsten laten je werken met verzamelingen van waarden, terwijl lussen je helpen die efficiënt te verwerken.

De som van de lijst

Dit patroon komt vaak voor in datapijplijnen en analytics-workflows.

Oefening

Schrijf een programma dat alle getallen in een lijst optelt zonder de ingebouwde functie sum() te gebruiken. Het programma moet de optellogica expliciet in een lus uitvoeren in plaats van te steunen op andere aggregatiehulpmiddelen.

Startcode

Hier is wat startcode om je op weg te helpen:

numbers = [3, 7, 2, 9, 4]

# Task: Create an accumulator variable
# total = ...

# Task: Loop through numbers and add each value to total
# for ...:
#     ...

# Task: Print the final total
# print(total)

Belangrijke concepten geoefend

  • Een accumulatorvariabele initialiseren

  • Itereren met for-lussen

  • Waarden stap voor stap bijwerken

Voor meer lijstgerelateerde voorbeelden, bekijk onze gids met de meest voorkomende Python-lijstvragen.

Het grootste getal vinden

De volgende oefening lijkt op de vorige, maar werkt anders binnen de lus. Het versterkt algoritmisch denken en spiegelt hoe ingebouwde functies intern werken.

Oefening

Daag de gebruiker uit om het grootste getal in een lijst te vinden zonder max() te gebruiken.

Startcode

Hier is wat startcode om je op weg te helpen:

numbers = [12, 5, 27, 3, 19]

# Task: Initialize current_max using the first element
# current_max = numbers[0]

# Task: Loop through the remaining elements and update current_max
# for ...:
#     if ...:
#         current_max = ...

# Task: Print the largest number
# print(current_max)

Belangrijke concepten geoefend

  • Vergelijkingslogica
  • Status bijhouden tijdens iteratie

Duplicaten verwijderen

Echte data is rommelig, en rommelige data bevat vaak dubbele datapunten. De volgende oefening bereidt je voor op datacleaningtaken.

Oefening

Zet een lijst met dubbele elementen om in een nieuwe lijst met alleen unieke items.

Op het eerste gezicht lijkt dit probleem eenvoudig, maar het introduceert het idee om bij te houden wat je al hebt gezien. Dit is een fundamenteel concept in dataverwerking, waar het identificeren en verwijderen van dubbele records routinewerk is.

Startcode

Hier is wat startcode om je op weg te helpen:

data = ["apple", "banana", "apple", "orange", "banana", "kiwi"]

# Task: Create a new list for unique items
# unique = []

# Task: Loop through data and append items you haven't seen yet
# for item in data:
#     if ...:
#         ...

# Task: Print or return the unique list
# print(unique)

Belangrijke concepten geoefend

  • Lidmaatschapscontroles met in

  • Nieuwe lijsten opbouwen

  • Inzicht in gegevens-uniciteit

Python-oefeningen voor dictionaries en stringmanipulatie

Dictionaries en strings zijn essentieel voor het organiseren en transformeren van tekstuele data. Laten we bekijken hoe je hiermee omgaat.

De tekenfrequentieteller

Deze oefening leert je hoe je frequentietabellen bouwt, een veelvoorkomende data-analysetaak.

Oefening

Neem een stringinvoer en geef een dictionary terug die telt hoe vaak elk teken voorkomt.

Deze oefening is een grote conceptuele stap: je bouwt dynamisch een datastructuur op terwijl je programma draait. In plaats van te werken met een vooraf gedefinieerde lijst of dictionary, maak en update je entries op basis van de data die je tegenkomt.

Startcode

Hier is wat startcode om je op weg te helpen:

text = input("Enter some text: ")

# Task: Create an empty dictionary
# counts = {}

# Task: Loop over each character and update counts
# for ch in text:
#     # Option A: counts[ch] = counts.get(ch, 0) + 1
#     # Option B: if ch in counts: ... else: ...
#     pass

# Task: Print the frequency table
# print(counts)

Belangrijke concepten geoefend

  • Dictionaries

  • .get()-methode

  • Conditionele initialisatie

Het eenvoudige telefoonboek

Deze oefening raakt aan dictionarylogica, de basis voor het begrijpen van tabelvormige datastructuren later.

Oefening

Maak een programma dat namen en nummers in een dictionary opslaat en de gebruiker laat zoeken op naam.

Deze oefening introduceert het idee om een programma te gebruiken als een persistent opzoekhulpmiddel in plaats van een eenmalige berekening. Je modelleert een vereenvoudigde versie van hoe veel applicaties informatie opslaan en ophalen.

Startcode

Hier is wat startcode om je op weg te helpen:

phonebook = {
    # "Alice": "9123 4567",
    # "Ben": "9876 5432",
}

# Task: (Optional) add entries via input()
# name = input("Name to add: ")
# number = input("Number to add: ")
# phonebook[name] = number

# Task: Search loop (one lookup is fine for a start)
query = input("Search name: ")

# Task: Print the number if found, otherwise print a friendly message
# if ...:
#     print(...)
# else:
#     print("Not found")

Belangrijke concepten geoefend

  • Opzoeken in dictionaries
  • Sleutel-waarde-relaties

Als je dieper in dictionaries wilt duiken, raad ik onze uitgebreide gids over Python Dictionary Methods aan.

Palindroomchecker

Deze oefening combineert tekstverwerking met logische vergelijking door naar palindromen te kijken.

Oefening

Een palindroom is elk woord, elke zin, elk getal of elke tekenreeks die zowel voorwaarts als achterwaarts hetzelfde leest. Maak een script dat controleert of een string voor- en achterwaarts hetzelfde leest (ongeacht hoofdletters en spaties).

Startcode

Hier is wat startcode om je op weg te helpen:

text = input("Enter a word or phrase: ")

# Task: Normalize (lowercase + remove spaces)
# normalized = ...

# Task: Reverse using slicing
# reversed_text = ...

# Task: Compare and print a result message
# if ...:
#     print("Palindrome")
# else:
#     print("Not a palindrome")

Belangrijke concepten geoefend

  • Stringmethoden (lower(), replace())

  • Stringslicen ([::-1])

Python-oefeningen voor functies en modulariteit

Functies laten je herbruikbare, overzichtelijke code schrijven in plaats van logica te herhalen.

De factoriaalcalculator

De factoriaalcalculator helpt je returnwaarden te begrijpen, die cruciaal zijn voor het bouwen van grotere programma’s.

Oefening

Definieer een functie die een geheel getal neemt en de faculteit (factorial) daarvan retourneert met behulp van een lus.

Het onderscheid tussen een waarde printen en een waarde retourneren is extra belangrijk. Resultaten retourneren maakt het mogelijk je functie te combineren met andere code, essentieel zodra programma’s groter worden dan één bestand.

Startcode

Hier is wat startcode om je op weg te helpen:

def factorial(n: int) -> int:
    """Return n! (factorial of n) using a loop."""
    # Task: Decide how to handle n < 0

    # Task: Initialize result
    # result = ...

    # Task: Multiply result by each integer from 1 to n
    # for ...:
    #     ...

    # Task: Return the computed factorial
    # return result
    pass

# Optional quick test
# print(factorial(5))  # expected: 120

Belangrijke concepten geoefend

  • Functiedefinities
  • Lusgebaseerde berekeningen
  • Waarden retourneren versus printen

Lees meer over functies in onze Python-functietutorial.

Priemgetallenvalideerder

We bekijken hierna een functie die priemgetallen valideert. Dit helpt je leren hoe je herbruikbare functies maakt.

Oefening

Schrijf een functie die True retourneert als een getal priem is en False als dat niet zo is.

Priemcontrole laat ook zien hoe functies logica netjes kunnen inkapselen. Eenmaal geschreven kan de functie overal opnieuw worden gebruikt zonder de interne details te hoeven begrijpen.

Startcode

Hier is wat startcode om je op weg te helpen:

def is_prime(n: int) -> bool:
    """Return True if n is prime, otherwise False."""
    # Task: Handle small cases (n <= 1)

    # Task: Check divisibility from 2 up to an appropriate limit
    # for ...:
    #     if ...:
    #         return False

    # Task: If no divisors found, return True
    # return True
    pass

# Optional quick tests
# print(is_prime(2))   # expected: True
# print(is_prime(15))  # expected: False

Belangrijke concepten geoefend

  • Lussen
  • Vroege returns
  • Logische efficiëntie

Flexibele argumentprinter

Dit introduceert geavanceerde functiesignaturen die in veel Python-bibliotheken worden gebruikt.

Oefening

Maak een functie die een willekeurig aantal argumenten accepteert met *args en ze één voor één print.

Deze oefening laat je kennismaken met een van Python’s flexibelere features: argumenten met variabele lengte. Het verschuift je denkwijze van vaste invoer naar functies die zich aanpassen aan verschillende gebruikspatronen.

Inzicht in *args maakt het eenvoudiger om echte Python-bibliotheken te lezen en te gebruiken, waar functies vaak een flexibel aantal parameters accepteren voor gemak en uitbreidbaarheid.

Startcode

Hier is wat startcode om je op weg te helpen:

def print_args(*args) -> None:
    """Print each positional argument on its own line."""
    # Task: Loop over args and print each one
    # for ...:
    #     print(...)
    pass

# Optional quick test
# print_args("hello", 42, True)

Belangrijke concepten geoefend

  • Argumenten met variabele lengte
  • Flexibiliteit van functies

Python-vaardigheden toepassen met begeleide projecten

Oefeningen bouwen vaardigheden op, maar projecten zetten die vaardigheden om in vertrouwen.

Netflix-films onderzoeken

netflix guided projects

Het begeleide project Investigating Netflix Movies stelt een bedrieglijk eenvoudige vraag: worden films in de loop van de tijd korter? Om die te beantwoorden werk je met een echte dataset van Netflix-titels en zet je ruwe datarijen stap voor stap om in een helder, visueel inzicht.

Wat dit project krachtig maakt, is dat het de kloof overbrugt tussen Python-basisprincipes voor beginners en toegepaste data-analyse. Je ziet hoe eenvoudige logica opschaalt in combinatie met de juiste tools, zonder iets lokaal te hoeven installeren.

Dr. Semmelweis en de ontdekking van handhygiëne

handwashing guided project

Het project Dr. Semmelweis and the Importance of Handwashing plaatst je in de rol van data-analist die een echt historisch probleem onderzoekt. In het midden van de 19e eeuw observeerde Dr. Ignaz Semmelweis ongewoon hoge sterftecijfers in de ene ziekenhuisafdeling vergeleken met een andere, maar hij miste de computationele hulpmiddelen om te bewijzen waarom.

Met behulp van historische gegevens analyseer je sterftecijfers vóór en na de introductie van handwassen. Het project richt zich op het manipuleren van tabeldata met pandas, het berekenen van percentages en het vergelijken van gemiddelden over tijdsperioden. 

De NYC Airbnb-markt verkennen

airbnb guided project

In het project Exploring Airbnb Market Trends stap je in een scenario dat sterk lijkt op echt analytics-werk: rommelige, inconsistente data die aanzienlijke opschoning vereist voordat er zinvolle analyse kan plaatsvinden. 

De dataset bevat verhuurlijsten met prijzen die als strings zijn opgeslagen, ontbrekende beoordelingsscores en inconsistente opmaak.

Je primaire taak is de data opschonen en standaardiseren. Het project benadrukt dat datavoorbereiding geen voorbereidende klus is, maar een kernvaardigheid voor analisten. Vaak besteden dataprofessionals het grootste deel van hun tijd aan dataschoonmaak, en dit project is een uitstekend praktisch ijkpunt voor die competentie.

Conclusie

Je begon met eenvoudige variabelen en gebruikersinvoer, ging vervolgens door controlflow, datastructuren, functies en paste alles ten slotte toe in begeleide projecten. Deze oefeningen zouden je een goed beeld moeten hebben gegeven van hoe Python wordt gebruikt in echte omgevingen.

Je logische volgende stap is gestructureerd leren. Consequente oefening gecombineerd met gestructureerde, begeleide instructie is de snelste manier om oefeningen om te zetten in expertise. Ik raad aan je in te schrijven voor ons Python Programming- of Data Scientist-traject om te beginnen.

Python-oefeningen: veelgestelde vragen

Wat is het beste platform om Python-code-uitdagingen te oefenen?

De sterkste platforms combineren hands-on coderen met gestructureerde feedback. DataCamp is uitstekend voor begeleide oefening omdat het coderen in de browser biedt (geen setup), directe feedback op oefeningen, gestructureerde skill- en carrièretrajecten en begeleide projecten met echte datasets.

Hoe kan ik gespreide herhaling effectief gebruiken om Python te leren?

Gespreide herhaling werkt het best wanneer je het toepast op concepten, niet alleen op syntaxis. In plaats van aantekeningen steeds opnieuw te lezen, keer je in de loop van de tijd terug naar dezelfde ideeën via steeds moeilijkere oefeningen.

Wat zijn enkele gevorderde Python-projecten voor beginners?

Goede voorbeelden van gevorderde projecten zijn: een to-do-app op de command line met bestandspersistentie bouwen, een CSV-dataset analyseren met pandas en basisvisualisaties, of een kleine API-client maken die data ophaalt en verwerkt van een publieke endpoint.


Austin Chia's photo
Author
Austin Chia
LinkedIn

Ik ben Austin, een blogger en techschrijver met jarenlange ervaring als zowel datascientist als data-analist in de gezondheidszorg. Ik begon mijn techreis met een achtergrond in biologie en help nu anderen dezelfde overstap te maken via mijn techblog. Mijn passie voor technologie heeft geleid tot schrijfbijdragen aan tientallen SaaS-bedrijven, waarmee ik anderen inspireer en mijn ervaringen deel.

Onderwerpen
Python

Python-cursussen voor beginners

{count, plural, one {Cursus} other {Cursussen}}

Introductie tot Python

{hours} uur
7.1M
Leer de basis van data-analyse met Python in 4 uur. Deze online cursus laat je kennismaken met de Python-interface en populaire pakketten.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

{count, plural, one {blog} other {blogs}}

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken