Kurz: Python wird oft mit dem Satz batteries included beschrieben: Ohne etwas zu installieren, stehen dir viele Module zur Verfügung. Dieses Kapitel zeigt die nützlichsten.
Teil des Kurses Python
Python wird oft mit dem Satz batteries included beschrieben: Ohne etwas zu installieren, stehen dir viele Module zur Verfügung. Dieses Kapitel zeigt die nützlichsten. Du musst nicht alle auswendig kennen, aber du solltest wissen, dass es sie gibt.
Überblick
| Modul | Wofür |
|---|---|
math, statistics, random | Mathematik, Statistik, Zufall |
datetime, time, calendar | Datum, Uhrzeit, Zeiträume |
os, pathlib, shutil | Dateien und Ordner, Betriebssystem |
sys | Programm und Interpreter (Argumente, Pfade) |
json, csv | Datenformate |
re | reguläre Ausdrücke |
collections | Counter, defaultdict, deque, namedtuple |
itertools, functools | Werkzeuge für Iteratoren und Funktionen |
argparse | Kommandozeilen-Argumente |
logging | Protokollierung |
unittest | Tests |
urllib, http, socket | Netzwerk |
sqlite3 | eine Datenbank in einer Datei |
subprocess | andere Programme starten |
threading, asyncio | Nebenläufigkeit |
collections
from collections import Counter, defaultdict, deque, namedtuple
# Counter zählt
print(Counter("mississippi"))
print(Counter("a b a c a b".split()).most_common(2))
# defaultdict legt fehlende Schlüssel selbst an
gruppen = defaultdict(list)
for wort in ["Apfel", "Ananas", "Birne", "Banane", "Kirsche"]:
gruppen[wort[0]].append(wort)
print(dict(gruppen))
# deque: schnelle Warteschlange
q = deque([1, 2, 3])
q.append(4)
q.appendleft(0)
print(q.popleft(), list(q))
# namedtuple: Tupel mit Feldnamen
Punkt = namedtuple("Punkt", ["x", "y"])
p = Punkt(3, 4)
print(p.x, p.y, p)Ausgabe:
Counter({'i': 4, 's': 4, 'p': 2, 'm': 1})
[('a', 3), ('b', 2)]
{'A': ['Apfel', 'Ananas'], 'B': ['Birne', 'Banane'], 'K': ['Kirsche']}
0 [1, 2, 3, 4]
3 4 Punkt(x=3, y=4)statistics
import statistics as st
werte = [2, 4, 4, 4, 5, 5, 7, 9]
print(st.mean(werte))
print(st.median(werte))
print(st.mode(werte))
print(round(st.stdev(werte), 3))Ausgabe:
5
4.5
4
2.138os und sys
import os, sys
print(type(os.getcwd())) # aktuelles Arbeitsverzeichnis
print(os.path.join("ordner", "datei.txt"))
print(os.path.splitext("bild.png"))
print(sys.version_info >= (3, 8))
print(len(sys.argv)) # Argumente: [Skriptname, ...]Ausgabe:
<class 'str'>
ordner/datei.txt
('bild', '.png')
True
1textwrap, string und pprint
import textwrap, string, pprint
print(textwrap.fill("Python bringt viele nützliche Module mit.", width=20))
print(string.ascii_lowercase[:5], string.digits)
pprint.pprint({"name": "Mia", "hobbys": ["Lesen", "Rad", "Kochen"], "alter": 17}, width=30)Ausgabe:
Python bringt viele
nützliche Module
mit.
abcde 0123456789
{'alter': 17,
'hobbys': ['Lesen',
'Rad',
'Kochen'],
'name': 'Mia'}sqlite3: eine kleine Datenbank
Das Modul sqlite3 legt eine vollständige SQL-Datenbank in einer Datei (oder im Speicher) an:
import sqlite3
db = sqlite3.connect(":memory:")
db.execute("CREATE TABLE tiere (name TEXT, beine INTEGER)")
db.executemany("INSERT INTO tiere VALUES (?, ?)", [("Hund", 4), ("Vogel", 2), ("Spinne", 8)])
for zeile in db.execute("SELECT name FROM tiere WHERE beine > 3 ORDER BY name"):
print(zeile[0])
db.close()Ausgabe:
Hund
SpinneHilfe zu Modulen
Was ein Modul oder eine Funktion kann, erfährst du in der interaktiven Konsole mit help() oder auf docs.python.org:
import math
print(math.hypot.__doc__.splitlines()[0])Ausgabe:
hypot(*coordinates) -> valueMerke
- Die Standardbibliothek deckt viel ab: Mathe, Zeit, Dateien, Daten, Netzwerk, Tests
collectionshat Counter, defaultdict, deque und namedtuplestatisticsfür Mittelwert, Median, Standardabweichungsqlite3bringt eine eingebaute SQL-Datenbank- Schaue erst in die Standardbibliothek, bevor du etwas selbst baust oder installierst
Übungsaufgabe
Zähle mit collections.Counter, welche drei Buchstaben in einem Satz deiner Wahl am häufigsten vorkommen.
Quiz zur Selbstkontrolle
Welches Modul zählt Elemente bequem mit Counter?
- collections (richtig)
- statistics
- itertools
- random
Was bietet das Modul sqlite3?
- Eine SQL-Datenbank, die ohne Server in einer Datei läuft (richtig)
- Zugriff auf Webserver
- Ein Zeichenprogramm
- Verschlüsselung
Wo findest du die offizielle Dokumentation der Standardbibliothek?
- docs.python.org (richtig)
- python.com/docs
- pypi.org
- stackoverflow.com
Weiter im Kurs
Zurück: Pakete installieren mit pip und venv
Weiter: JSON und CSV
Alle Kapitel: Python im Überblick