Python¶
Python is een populaire programmeertaal die veel gebruikt wordt in de software development wereld. Het is een veelzijdige taal die je kan gebruiken voor allerlei toepassingen, van webdevelopment tot data science.
Een aantal belangrijke kenmerken van Python zijn:
- Python is in 1991 ontwikkeld door Guido van Rossum, een Nederlandse programmeur!
- Python is een toegankelijke taal: de syntax is eenvoudig en duidelijk, wat goed is voor beginners.
- Door een breed scala aan beschikbare libraries is Python erg flexibel en kan je veel verschillende toepassingen mee realiseren.
- De taal kent geen
{}(braces) maar gebruikt inspringing (indentation) om codeblokken aan te duiden.
Programmeren in Python¶
Net als in andere programmeertalen kent Python ook de basisprincipes van programmeren:
- Variabelen en datatypes
- Operatoren
- Controlestructuren
- Functies en procedures
- Datastructuren
Over het algemeen staat Python bekend als een vriendelijke taal voor beginners, maar dat betekent niet dat je het niet kan gebruiken voor complexe toepassingen. Python is een volwassen taal met een grote community en een breed scala aan toepassingen.
Installatie en eerste stappen¶
Om Python te kunnen gebruiken moet je dit eerst installeren op je computer.
Python in Docker
Wanneer je gebruik maakt van Docker is het niet nodig om zelf nog Python te installeren op je computer. Wel kan het altijd handig zijn om Python te kunnen gebruiken zonder Docker, bijvoorbeeld om te experimenteren of te testen.
- Python installeren: Download Python vanaf de officiële website: Python.org Download. Vink tijdens installatie op Windows aan: “Add Python to PATH”.
- Interpreter controleren:
- Interactieve modus (REPL): Start met
pythonen probeer eenvoudige expressies:
- Een script draaien: Maak een bestand
hello.pyen voer het uit.
Handige editors/IDE’s: VS Code of PyCharm.
Basisconcepten¶
Variabelen en datatypes¶
Variabelen maak je door een naam een waarde te geven. Python is dynamisch getypt. Dat wil zeggen dat je geen type moet declareren voor een variabele, Python zelf bepaalt het type.
naam = "Sam"
leeftijd = 19
is_student = True
gemiddelde = 8.3
print(type(naam)) # <class 'str'>
print(type(leeftijd)) # <class 'int'>
print(type(is_student)) # <class 'bool'>
print(type(gemiddelde)) # <class 'float'>
Veel gebruikte types: int, float, str, bool, list, tuple, dict, set, en None.
Invoer en uitvoer¶
input geeft altijd een str terug. Om te rekenen moet je converteren:
Operatoren¶
- Rekenen:
+ - * / // % ** - Vergelijking:
== != < <= > >= - Logisch:
and or not
Controlestructuren¶
If/elif/else¶
Net als in andere talen kent Python ook de if/else constructie. Ook kent Python de elif constructie, in andere talen kun je deze ook wel zien als een “else if”.
score = 73
if score >= 90:
print("Uitstekend")
elif score >= 60:
print("Voldoende")
else:
print("Onvoldoende")
Herhalen (loops)¶
Om een codeblok meerdere keren uit te voeren kun je gebruik maken van een loop. Python kent twee soorten loops: de for loop en de while loop.
# for over een range
for i in range(3):
print("i is", i)
# while lus
teller = 0
while teller < 3:
print("teller is", teller)
teller += 1
Break en continue¶
for getal in range(10):
if getal == 5:
break # stopt de herhaling (loop)
if getal % 2 == 0:
continue # sla even getallen over (continue naar de volgende iteratie
print(getal)
Werken met datastructuren¶
Lijsten (list)¶
getallen = [10, 20, 30]
getallen.append(40)
eerste = getallen[0]
laatste = getallen[-1]
for g in getallen:
print(g)
Tupels (tuple)¶
Onveranderlijke lijst, handig voor vaste combinaties:
Woordenboeken (dict)¶
student = {"naam": "Sam", "leeftijd": 19}
student["opleiding"] = "HBO-ICT"
for sleutel, waarde in student.items():
print(sleutel, "->", waarde)
Verzamelingen (set)¶
List comprehensions¶
Functies en modules¶
Functies¶
Argumenten kunnen standaardwaarden hebben en met naam worden doorgegeven:
def maak_label(naam: str, groep: str = "A") -> str:
return f"{naam} (groep {groep})"
print(maak_label("Sam"))
print(maak_label("Alex", groep="B"))
Modules importeren¶
Foutafhandeling (exceptions)¶
try:
leeftijd = int(input("Leeftijd? "))
print(10 / leeftijd)
except ValueError:
print("Geef een geldig getal op!")
except ZeroDivisionError:
print("Delen door nul kan niet!")
else:
print("Gelukt zonder fouten")
finally:
print("Klaar")
Bestanden lezen en schrijven¶
# schrijven
with open("voorbeeld.txt", "w", encoding="utf-8") as f:
f.write("Hallo bestand!\n")
# lezen
with open("voorbeeld.txt", "r", encoding="utf-8") as f:
inhoud = f.read()
print(inhoud)
Pakketten beheren met pip en virtuele omgevingen¶
Installeer pakketten uit de Python Package Index (PyPI) met pip.
Python in Docker
Wanneer je gebruik maakt van Docker is het niet nodig om zelf nog pakketten te installeren. Wel moet je de requirements.txt file aanpassen om de juiste pakketten te installeren. Na het aanpassen moet je de container opnieuw opstarten of builden.
Gebruik een virtuele omgeving zodat projectafhankelijkheden gescheiden blijven:
python -m venv .venv
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
# macOS/Linux
source .venv/bin/activate
pip install requests
Objectgeoriënteerd programmeren (OOP) in het kort¶
class Student:
def __init__(self, naam: str, leeftijd: int) -> None:
self.naam = naam
self.leeftijd = leeftijd
def omschrijving(self) -> str:
return f"{self.naam} ({self.leeftijd})"
s = Student("Sam", 19)
print(s.omschrijving())
Stijl en best practices¶
- PEP 8: De officiële stijlrichtlijnen. Zie: PEP 8 Style Guide
- Naamgeving: functies_en_variabelen_met_underscores, KlassenMetCamelCase.
- Leesbaarheid Schrijf duidelijke, korte functies, kies betekenisvolle namen en gebruik consistente parameters.
- Docstrings om uit te leggen wat functies/klassen doen.
Voorbeeld docstring:
def oppervlakte_rechthoek(breedte: float, hoogte: float) -> float:
"""Bereken oppervlakte van een rechthoek in vierkante eenheden."""
return breedte * hoogte
Handige tools¶
- VS Code extensies: Python (Microsoft), Pylance, isort, Black.
- Formatters/Linters: Black, Ruff, Flake8, isort.
- Debuggen: VS Code debugger (F5),
pdbin terminal.
Verder leren en referenties¶
- Officiële documentatie: Python Docs
- Tutorial van de docs: The Python Tutorial
- Pakketzoeker: PyPI
- Stijl: PEP 8