EMZETT.
Login

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

Kapitel 32 von 44 im Kurs Python. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

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

ModulWofür
math, statistics, randomMathematik, Statistik, Zufall
datetime, time, calendarDatum, Uhrzeit, Zeiträume
os, pathlib, shutilDateien und Ordner, Betriebssystem
sysProgramm und Interpreter (Argumente, Pfade)
json, csvDatenformate
rereguläre Ausdrücke
collectionsCounter, defaultdict, deque, namedtuple
itertools, functoolsWerkzeuge für Iteratoren und Funktionen
argparseKommandozeilen-Argumente
loggingProtokollierung
unittestTests
urllib, http, socketNetzwerk
sqlite3eine Datenbank in einer Datei
subprocessandere Programme starten
threading, asyncioNebenlä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.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, ...]

Ausgabe:

<class 'str'>
ordner/datei.txt
('bild', '.png')
True
1

textwrap, 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
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])

Ausgabe:

hypot(*coordinates) -> value

Merke

  • Die Standardbibliothek deckt viel ab: Mathe, Zeit, Dateien, Daten, Netzwerk, Tests
  • collections hat Counter, defaultdict, deque und namedtuple
  • statistics für Mittelwert, Median, Standardabweichung
  • sqlite3 bringt 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

Weiter im Kurs

Zurück: Pakete installieren mit pip und venv

Weiter: JSON und CSV

Alle Kapitel: Python im Überblick