HOOFDSTUK 1 — Getting Started
1.1 Running Python in Linux
Voor deze beginners cursus Python, gebruiken we een Linux versie met een grafische omgeving. Dit is niet noodzakelijk, maar makkelijker voor copy-paste operaties e.d.
In de voorbeelden is gebruik gemaakt van LinuxMint-MATE v22.1-xia, al kan je elke ubuntu cloon en eigenlijk alle linux versies gebruiken met python. We werken met python 3.
1.2 Running Python
Open een terminal en tik het volgende:
user@c-VirtualBox:~$ python3
Python 3.12.3 (main, Nov 6 2024, 18:32:19) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Dit is Python's speelplaats (playgrond): Je tikt alles op een regel, en je krijgt onmiddelijk reactie.
Er zijn 2 manieren om python te draaien:
1.2.1 De >>> prompt (de REPL / interactive shell):
Nuttig voor:
- Kleine code‑snippers testen
- Even kijken hoe iets reageert
- Vlugge probeersels (2 + 2, print("hallo"), …)
Maar>>>is niet bedoeld om echte scripts in te bouwen.
Het voelt aan alsof je bash‑commando’s in Python typt.
1.2.2 een script file (.py) die je draait onder bash ...
Dit is de norm om programma's te creeren (en te testen):
je start met het aanmaken van een script-file met suffix (.py),
en je draait dat script dan onder bash.
1.3 Je eerste python script
- cre-eer een file:
hello.py
als volgt: user@c-VirtualBox:~$ nano hello.py
- in deze file zet je :
print("Hello Class") - doe een
chmod +xvanhello.py - vergeet niet de shebang (eerste regel van je script):
#!/usr/bin/env python3 - draai je script: user@c-VirtualBox:~$
./hello.py
(vergeet de dot niet voor de slash) - kijk naar het voorbeeld hieronder ... :
$ nano hello.py
________________________________________________________________________
GNU nano 7.2 hello.py *
#!/usr/bin/env python3
### this is a comment
### hereabove we find the python shebang
### it must start with #! (at the first line)
### the following is the only python line:
print("Hello Class")
[ line 1/2 (50%), col 21/21 (100%), char 20/21 (95%) ]
^G Help ^O Write Out ^W Where Is ^K Cut ^T Execute ^C Location
^X Exit ^R Read File ^\ Replace ^U Paste ^J Justify ^/ Go To Line
________________________________________________________________________
1.4 Tips voor studenten
- sla je bestand op voordat je het uitvoert ... (jazeker)
pwdtoont in welke map je zit.lstoont welke bestanden er in die map staan.- inspringfouten (indentation errors) horen bij Python; ze betekenen meestal dat spaties of tabs niet netjes uitgelijnd zijn.
- foutmeldingen langzaam lezen helpt om te zien waar het misgaat, niet alleen dat het misgaat.
PYTHON EXAMPLES & EXERCISES
PASTE‑VRIENDELIJKE VOORBEELDEN — HOOFDSTUK 2 t.e.m. 9
HOOFDSTUK 2 — Variables, Input, Decisions
Voorbeeld 1 — eenvoudige berekening
price = 12.5
quantity = 3
total = price * quantity
print("Total:", total)
Voorbeeld 2 — input + beslissing
temp = int(input("Temperature: "))
if temp < 0:
print("Freezing")
elif temp < 20:
print("Cold")
else:
print("Warm")
Voorbeeld 3 — string + decision
name = input("Name: ")
if name.lower() == "bert":
print("Welcome back!")
else:
print("Hello", name)
Oefening 1 — Leeftijdscategorie
Vraag de gebruiker om zijn leeftijd en toon:
“child” (< 12)
“teen” (12–17)
“adult” (18+)
Oefening 2 — Kilometer naar meter
Vraag kilometers, reken om naar meters.
Oefening 3 — Wachtwoordcontrole
Vraag een wachtwoord en check of het gelijk is aan “python”.
HOOFDSTUK 3 — Loops
Voorbeeld 1 — while loop
count = 10
while count > 0:
print(count)
count -= 1
Voorbeeld 2 — for loop over lijst
cities = ["Gent", "Brugge", "Antwerpen"]
for city in cities:
print("Visiting:", city)
Voorbeeld 3 — loop + break
for i in range(100):
if i == 7:
break
print(i)
Oefening 1 — Aftellen
Print van 20 naar 0.
Oefening 2 — Som van 1 t.e.m. 100
Gebruik een loop om de som te berekenen.
Oefening 3 — Zoek getal
Vraag een getal en loop tot je het vindt.
HOOFDSTUK 4 — Strings and Lists
Voorbeeld 1 — string manipulatie
text = "linux beginners"
print(text.title())
print(text.replace("beginners", "experts"))
Voorbeeld 2 — lijst bewerken
names = ["Alice", "Bob"]
names.append("Charlie")
names.insert(0, "Zara")
print(names)
Voorbeeld 3 — split + loop
line = "apple,banana,pear"
items = line.split(",")
for item in items:
print("Item:", item)
Oefening 1 — Woorden tellen
Vraag een zin en tel hoeveel woorden.
Oefening 2 — Lijst sorteren
Maak een lijst van 5 namen en sorteer ze.
Oefening 3 — Eerste en laatste letter
Vraag een woord en toon de eerste en laatste letter.
HOOFDSTUK 5 — Files
Voorbeeld 1 — file lezen lijn per lijn
with open("notes.txt") as f:
for line in f:
print(line.strip())
Voorbeeld 2 — file schrijven
lines = ["First line\n", "Second line\n"]
with open("output.txt", "w") as f:
f.writelines(lines)
Voorbeeld 3 — file bestaat?
import os
if os.path.exists("config.txt"):
print("Found config.txt")
else:
print("Missing config.txt")
Oefening 1 — Tel regels
Lees een file en tel hoeveel regels erin staan.
Oefening 2 — Zoek woord
Lees een file en zoek of een woord voorkomt.
Oefening 3 — Kopieer file
Lees een file en schrijf de inhoud naar een nieuwe file
HOOFDSTUK 6 — Functions
Voorbeeld 1 — default parameter
def greet(name="student"):
print("Hello,", name)
greet()
greet("Karl")
Voorbeeld 2 — functie die lijst telt
def count_items(items):
return len(items)
print(count_items(["a", "b", "c"]))
Voorbeeld 3 — even/oneven
def is_even(n):
return n % 2 == 0
print(is_even(4))
print(is_even(7))
Oefening 1 — Maximum
Schrijf een functie max_of_two(a, b)
Oefening 2 — Reeks optellen
Functie die een lijst getallen optelt.
Oefening 3 — Is het een klinker?
Functie is_vowel(letter) → True/False.
HOOFDSTUK 7 — Dictionaries
Voorbeeld 1 — dictionary uitbreiden
person = {"name": "Jan", "city": "Gent"}
person["age"] = 105
print(person)
Voorbeeld 2 — dictionary doorlopen
settings = {"theme": "dark", "volume": 70}
for key, value in settings.items():
print(key, "=", value)
Voorbeeld 3 — nested dictionary
users = {
"jonas": {"role": "admin", "active": True},
"gunther": {"role": "user", "active": False}
}
print(users["bert"]["role"])
Oefening 1 — Contactboekje
Dictionary met naam → telefoonnummer.
Oefening 2 — Tellen van woorden
Tel hoe vaak elk woord voorkomt in een zin.
Oefening 3 — Producten
Dictionary met product → prijs, toon totaalprijs van 3 items.
HOOFDSTUK 8 — Filesystem and Paths
Voorbeeld 1 — pad bouwen
import os
home = "/home/bert"
file = "notes.txt"
path = os.path.join(home, file)
print(path)
Voorbeeld 2 — file of directory?
import os
item = "/home/user/Documents"
if os.path.isdir(item):
print("Directory")
elif os.path.isfile(item):
print("File")
else:
print("Not found")
Voorbeeld 3 — directory aanmaken
import os
if not os.path.exists("backup"):
os.mkdir("backup")
Oefening 1 — Toon alle .txt bestanden
Gebruik os.listdir() en filter op .txt
Oefening 2 — Bestaat pad?
Vraag een pad en toon of het bestaat.
Oefening 3 — Maak een map “backup”
Check of hij bestaat, anders maak hem aan.
HOOFDSTUK 9 — Subprocess and System Interaction
Voorbeeld 1 — eenvoudige command
import subprocess
subprocess.run(["date"])
Voorbeeld 2 — output opvangen
import subprocess
result = subprocess.run(["whoami"], capture_output=True, text=True)
print("User:", result.stdout.strip())
Voorbeeld 3 — fout opvangen
import subprocess
result = subprocess.run(["ls", "/does/not/exist"], capture_output=True, text=True)
print("STDERR:", result.stderr)
print("Return code:", result.returncode)
Oefening 1 — Toon huidige gebruiker
Gebruik whoami
Oefening 2 — Toon huidige directory
Gebruik pwd
Oefening 3 — Check of een command bestaat
Run which python3 en toon de output
HOOFDSTUK 10
10 concrete problemen die je kan oplossen met een klein (onder 50 regels) Python‑script. Elk probleem is klein genoeg voor een utility, maar realistisch genoeg om nuttig te zijn. Kies er 2 voor je python-eindproef:
-
Duplicaten in een map opsporen: bestanden met dezelfde inhoud vinden (via hash) en rapporteren.
-
Automatisch oude bestanden opruimen: in een map alle bestanden ouder dan X dagen verwijderen of verplaatsen.
-
Een CSV snel samenvatten: kolomnamen tonen, aantal rijen tellen, ontbrekende waarden detecteren.
-
Een logbestand filteren: regels tonen die een bepaalde foutcode of zoekterm bevatten.
-
Een lijst e‑mailadressen valideren: controleren welke adressen syntactisch correct zijn.
-
Een mapstructuur als boom afdrukken: zoals tree op Linux, maar portable en minimalistisch.
-
Een tekstbestand ontdubbelen: dubbele regels verwijderen en het resultaat opslaan.
-
Een simpele timer/stopwatch: starten, stoppen, en de verstreken tijd tonen.
-
Een URL‑checker: een lijst URL’s testen op bereikbaarheid (statuscodes).
- Een mini‑password generator: willekeurige wachtwoorden maken met instelbare lengte en karaktersets.