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)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))5 4.5 4 2.138
os 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, ...]<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)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()Hund Spinne
Hilfe 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])hypot(*coordinates) -> value
Merke
- 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
Aufgabe
Zähle mit collections.Counter, welche drei Buchstaben in einem Satz deiner Wahl am häufigsten vorkommen.