home       inleiding       sysadmin       services       tools       bash       werk       nothing      

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 +x van hello.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)
  • pwd toont in welke map je zit.
  • ls toont 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.