Voraussetzungen
Du kennst die Inhalte aus Teil 14 und arbeitest mit einem lokalen Python-3-Interpreter (ab Python 3.10), beispielsweise in Thonny.
Das lernst du in dieser Lektion
- Module importieren.
- Ein eigenes Hilfsmodul anlegen.
- Venv und pip einordnen.
Fertige Bausteine verwenden
Ein Modul bündelt Python-Code. Die Standardbibliothek enthält viele davon, beispielsweise math, csv, json und datetime. Sie werden mit Python geliefert und müssen für diesen Kurs nicht mit pip installiert werden.
import math
print(f"Kreiszahl: {math.pi:.3f}")
print(math.isfinite(18.5))
print(math.isfinite(float("inf")))
math.pi greift auf einen Wert im Modul zu. math.isfinite() prüft, ob eine Zahl endlich ist; das hilft bei Mengenprüfungen. Mit from math import pi könntest du einen Namen direkt importieren. Vermeide from math import *, weil dann schwerer erkennbar ist, wo Namen herkommen.
Ein eigenes Modul
Lege diese zwei Dateien im selben Ordner an. Zuerst rechner.py:
def materialkosten(gewicht_g, preis_pro_kg):
return gewicht_g / 1000 * preis_pro_kg
Dann hauptprogramm.py:
from rechner import materialkosten
print(f"Kosten: {materialkosten(100, 20):.2f} Euro")
Starte hauptprogramm.py. Python findet das Modul im Skriptordner. Die Dateiendung .py steht nicht im Import. Nenne eigene Dateien nicht math.py, csv.py oder json.py, weil sie sonst die gleichnamigen Standardmodule verdecken können.
Nur beim direkten Start ausführen
Importierter Code wird beim ersten Import ausgeführt. Möchtest du in rechner.py eine Probeausgabe unterbringen, schütze sie durch:
if __name__ == "__main__":
print("Dieses Modul wurde direkt gestartet.")
Beim direkten Start besitzt __name__ den Wert "__main__". Beim Import erhält es den Modulnamen. Die Funktionsdefinition bleibt in beiden Fällen verfügbar. Im Abschlussprojekt verwenden wir dieses Muster für den Programmstart.
Optional: eine Projektumgebung
Eine virtuelle Umgebung trennt zusätzliche Pakete eines Projekts von anderen Projekten. Sie ist für unsere Standardbibliotheksbeispiele nicht nötig. Die folgenden Befehle gehören in ein Betriebssystemterminal, nicht in die Python-Shell. Öffne es im Projektordner. Diese Alternative setzt eine dort erreichbare Python-Installation voraus; Thonnys gebündeltes Python muss im Systemterminal nicht verfügbar sein.
Windows, mit installiertem Python-Launcher:
py -3 -m venv .venv
.venv\Scripts\python.exe -m pip --version
Linux/macOS, mit eingerichtetem python3:
python3 -m venv .venv
.venv/bin/python -m pip --version
Bei Debian/Ubuntu kann vorher das Paket python3-venv nötig sein. Die expliziten Interpreterpfade verwenden die Umgebung ohne Aktivierung. Ein Paket würdest du analog mit diesem Interpreter und -m pip install PAKETNAME installieren; PAKETNAME ist ein Platzhalter, kein auszuführender Kursbefehl. Installiere für den Kurs nichts zusätzlich.
pip verwaltet installierbare Pakete, ein Import macht deren Python-Bausteine im Code zugänglich. Ein Importpaket und der installierte Distributionsname müssen nicht gleich heißen. Den Ordner .venv und automatisch erzeugte __pycache__-Ordner brauchst du nicht ins Git-Repository zu übernehmen.
Mitmach-Aufgabe
Lege in rechner.py zusätzlich restmenge(rest_g, verbrauch_g) an. Importiere sie in hauptprogramm.py und berechne den Rest von 750 g nach 74 g Verbrauch.
Versuche die Aufgabe zuerst selbst. Vergleiche danach deinen Ansatz mit der Musterlösung. Andere Lösungen sind möglich, wenn sie dieselben Anforderungen erfüllen.
Musterlösung
# Datei: rechner.py
def restmenge(rest_g, verbrauch_g):
return rest_g - verbrauch_g
Ergebnis prüfen
In hauptprogramm.py ergänzt du from rechner import restmenge und print(restmenge(750, 74)). Die Ausgabe ist 676.
Typische Stolperstellen
Ein Terminalbefehl ist kein Python-Code. Der Python-Interpreter des Editors und der im Systemterminal können verschieden sein. Starte nach Änderungen am importierten Modul das Programm frisch.
Was du jetzt kannst
- Module importieren.
- Ein eigenes Hilfsmodul anlegen.
- Venv und pip einordnen.
Passendes Cheatsheet
Zum Nachschlagen: Cheatsheet 12 – Module, Pakete und virtuelle Umgebungen. Dort findest du auch den vorhandenen PDF-Download.
Im nächsten Teil
In Teil 16 geht es um CSV-Dateien für Tabellen und Messwerte. Schreibe tabellarische Daten und lies sie mit dem CSV-Modul wieder ein.
