36,90 €
US-Bestseller: Gegen stumpfsinnige Computeraufgaben! - Lernen Sie, Python-Programme zu schreiben, die Ihnen automatisch alle möglichen Aufgaben abnehmen. - In wenigen Minuten statt vielen Stunden zum fertigen Programm - Mit detaillierten Schritt-für-Schritt-Anleitungen, verständlichen Erklärungen und praxisnahen Beispielen Wenn Sie jemals Stunden damit verbracht haben, Dateien umzubenennen oder Hunderte von Tabelleneinträgen zu aktualisieren, dann wissen Sie, wie stumpfsinnig manche Tätigkeiten sein können. Wie wäre es, den Computer dazu zu bringen, diese Arbeiten zu übernehmen? In diesem Buch lernen Sie, wie Sie mit Python Aufgaben in Sekundenschnelle erledigen können, die sonst viel Zeit in Anspruch nehmen würden. Programmiererfahrung brauchen Sie dazu nicht: Wenn Sie einmal die Grundlagen gemeistert haben, werden Sie Python-Programme schreiben, die automatisch alle möglichen praktischen Aufgaben für Sie abarbeiten: - Dateien nach Texten durchsuchen - Dateien und Ordner erzeugen, aktualisieren, verschieben und umbenennen - Das Web durchsuchen, Inhalte herunterladen - Excel-Dateien aktualisieren und formatieren - PDF-Dateien teilen, zusammenfügen, mit Wasserzeichen versehen und verschlüsseln - Erinnerungsmails und Textnachrichten verschicken - Onlineformulare ausfüllen Schritt-für-Schritt-Anleitungen führen Sie durch jedes Programm und Übungsaufgaben am Ende jedes Kapitels fordern Sie dazu auf, die Programme zu verbessern und Ihre Fähigkeiten auf ähnliche Problemstellungen zu richten. Neu in dieser Auflage: 16 zusätzliche Projekte, darunter die Nutzung von OpenAI Whisper zur Transkription von Audio- und Videodateien, Playwright als Ergänzung zu Selenium zur Browsersteuerung, Texterkennung mit PyTesseract, Text-to-Speech-Funktionen, erweiterte PDF-Verarbeitung mit PyPDF und PDFMiner sowie Diagrammerstellung mit Matplotlib.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 945
Veröffentlichungsjahr: 2026
Dieses E-Book ist urheberrechtlich geschützt. Mit dem Erwerb des E-Books haben Sie sich verpflichtet, die Urheberrechte anzuerkennen und einzuhalten. Sie sind berechtigt, dieses E-Book für persönliche Zwecke zu nutzen. Sie dürfen es auch ausdrucken und kopieren, aber auch dies nur für den persönlichen Gebrauch. Die Weitergabe einer elektronischen oder gedruckten Kopie an Dritte ist dagegen nicht erlaubt, weder ganz noch in Teilen. Und auch nicht eine Veröffentlichung im Internet oder in einem Firmennetzwerk.
Das vorliegende Werk ist in all seinen Teilen urheberrechtlich geschützt. Alle Nutzungs- und Verwertungsrechte liegen bei den Autor*innen und beim Rheinwerk Verlag, insbesondere das Recht der Vervielfältigung und Verbreitung, sei es in gedruckter oder in elektronischer Form.
© Rheinwerk Verlag GmbH, Bonn 2026
Sie sind berechtigt, dieses E-Book ausschließlich für persönliche Zwecke zu nutzen. Insbesondere sind Sie berechtigt, das E-Book für Ihren eigenen Gebrauch auszudrucken oder eine Kopie herzustellen, sofern Sie diese Kopie auf einem von Ihnen alleine und persönlich genutzten Endgerät speichern. Zu anderen oder weitergehenden Nutzungen und Verwertungen sind Sie nicht berechtigt.
So ist es insbesondere unzulässig, eine elektronische oder gedruckte Kopie an Dritte weiterzugeben. Unzulässig und nicht erlaubt ist des Weiteren, das E-Book im Internet, in Intranets oder auf andere Weise zu verbreiten oder Dritten zur Verfügung zu stellen. Eine öffentliche Wiedergabe oder sonstige Weiterveröffentlichung und jegliche den persönlichen Gebrauch übersteigende Vervielfältigung des E-Books ist ausdrücklich untersagt. Das vorstehend Gesagte gilt nicht nur für das E-Book insgesamt, sondern auch für seine Teile (z. B. Grafiken, Fotos, Tabellen, Textabschnitte).
Urheberrechtsvermerke, Markenzeichen und andere Rechtsvorbehalte dürfen aus dem E-Book nicht entfernt werden.
Die automatisierte Analyse des Werkes, um daraus Informationen insbesondere über Muster, Trends und Korrelationen gemäß § 44b UrhG (»Text und Data Mining«) zu gewinnen, ist untersagt.
Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. können auch ohne besondere Kennzeichnung Marken sein und als solche den gesetzlichen Bestimmungen unterliegen.
Ungeachtet der Sorgfalt, die auf die Erstellung von Text, Abbildungen und Programmen verwendet wurde, können weder Verlag noch Autor*innen, Herausgeber*innen oder Übersetzer*innen für mögliche Fehler und deren Folgen eine juristische Verantwortung oder irgendeine Haftung übernehmen.
Al Sweigart
Praktische Programmierlösungen für Einsteiger*innen
3., aktualisierte und erweiterte Auflage
Wir hoffen, dass Sie Freude an diesem Buch haben und sich Ihre Erwartungen erfüllen. Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].
Informationen zu unserem Verlag und Kontaktmöglichkeiten finden Sie auf unserer Verlagswebsite www.dpunkt.de. Dort können Sie sich auch umfassend über unser aktuelles Programm informieren und unsere Bücher und E-Books bestellen.
Autor: Al Sweigart
Übersetzung: Torsten T. Will
Lektorat: Sandra Bollenbacher
Buchmanagement: Julia Griebel, Friederike Demmig
Copy-Editing: Annette Schwarz, Ditzingen
Satz: Ulrich Borstelmann, www.borstelmann.de
Herstellung: Stefanie Weidner, Frank Heidt
Covergestaltung: Eva Hepper, Silke Braun
Das vorliegende Werk ist in all seinen Teilen urheberrechtlich geschützt. Alle Rechte vorbehalten, insbesondere das Recht der Übersetzung, des Vortrags, der Reproduktion, der Vervielfältigung auf fotomechanischen oder anderen Wegen und der Speicherung in elektronischen Medien.
Ungeachtet der Sorgfalt, die auf die Erstellung von Text, Abbildungen und Programmen verwendet wurde, können weder Verlag noch Autor*innen, Herausgeber*innen oder Übersetzer*innen für mögliche Fehler und deren Folgen eine juristische Verantwortung oder irgendeine Haftung übernehmen.
Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. können auch ohne besondere Kennzeichnung Marken sein und als solche den gesetzlichen Bestimmungen unterliegen.
Die automatisierte Analyse des Werkes, um daraus Informationen insbesondere über Muster, Trends und Korrelationen gemäß § 44b UrhG (»Text und Data Mining«) zu gewinnen, ist untersagt.
Bibliografische Information der Deutschen Nationalbibliothek:
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.dnb.de abrufbar.
ISBN Print: 978-3-98889-063-4
ISBN PDF: 978-3-98890-307-5
ISBN ePub: 978-3-98890-308-2
Copyright © 2025 by Al Sweigart. Title of English-language original: Automate the Boring Stuff with Python, 3rd Edition: Practical Programming for Total Beginners, ISBN 9781718503403, published by No Starch Press Inc., 245 8th Street, San Francisco, California United States 94103. The Germanlanguage 3rd edition Copyright © 2026 by Rheinwerk Verlag GmbH under license by No Starch Press Inc. All rights reserved.
3., aktualisierte und erweiterte Auflage 2026
dpunkt.verlag ist eine Marke des Rheinwerk Verlags.
Translation Copyright für die deutsprachige Ausgabe © Rheinwerk Verlag, Bonn 2026
Rheinwerk Verlag GmbH • Rheinwerkallee 4 • 53227 Bonn
Über den Autor
Über den technischen Gutachter
Vorwort
Danksagungen
Einführung
Für wen ist dieses Buch geschrieben?
Programmiergepflogenheiten in diesem Buch
Was ist Programmierung?
Was ist Python?
Weit verbreitete Mythen über Programmierung
Programmierer müssen nicht viel Mathematik beherrschen
Sie sind nicht zu alt, um Programmierung zu lernen
KI wird Programmierer nicht ersetzen
Über dieses Buch
Python herunterladen und installieren
Mu herunterladen und installieren
Mu starten
IDLE starten
Die interaktive Shell
Wie Sie Hilfe finden
Programmierfragen schlau stellen
Neu in der dritten Auflage
Zusammenfassung
Teil I: Programmiergrundlagen
1 Python-Grundlagen
Ausdrücke in die interaktive Shell eingeben
Zeichenketten: Verkettung und Wiederholung
Werte in Variablen speichern
Zuweisungsanweisungen
Variablennamen
Ihr erstes Programm
Das Programm unter der Lupe
Kommentare
Die Funktion print()
Die Funktion input()
Die Begrüßungsnachricht
Die Funktion len()
Die Funktionen str(), int() und float()
Die Funktion type()
Die Funktionen round() und abs()
Wie Computer Daten in Binärzahlen speichern
Zusammenfassung
Übungsaufgaben
2 if-else und Ablaufsteuerung
Boolesche Werte
Vergleichsoperatoren
Boolesche Operatoren
Verwendung von booleschen und Vergleichsoperatoren
Bestandteile von Kontrollstrukturen
Bedingungen
Codeblöcke
Programmausführung
Kontrollstrukturanweisungen
if
else
elif
Ein kurzes Programm: Gegenteil-Tag
Ein kurzes Programm: Unehrlicher Kapazitätsrechner
Zusammenfassung
Übungsfragen
3 Schleifen
while-Schleifen-Anweisungen
Eine lästige while-Schleife
break-Anweisungen
continue-Anweisungen
for-Schleifen und die Funktion range()
Eine gleichwertige while-Schleife
Argumente für range()
Importieren von Modulen
Ein Programm vorzeitig mit sys.exit() beenden
Ein kurzes Programm: Zahl erraten
Ein kurzes Programm: Stein, Schere, Papier
Zusammenfassung
Übungsfragen
4 Funktionen
Funktionen erstellen
Argumente und Parameter
Rückgabewerte und return-Anweisungen
Der Wert »None«
Benannte Parameter
Der Call Stack
Lokaler und globaler Geltungsbereich
Regeln zum Gültigkeitsbereich
Die global-Anweisung
Identifikation des Gültigkeitsbereichs
Ausnahmebehandlung
Ein kurzes Programm: Zigzag
Ein kurzes Programm: Spike
Zusammenfassung
Übungsfragen
Übungsprogramme
Die Collatz-Sequenz
Eingabevalidierung
5 Debugging
Ausnahmen auslösen
Assertions
Loggen
Das Logging-Modul
Protokolldateien
Eine schlechte Praxis: Debuggen mit print()
Loglevel
Deaktiviertes Logging
Der Debugger von Mu
Debugging eines Additionsprogramms
Breakpoints setzen
Zusammenfassung
Übungsfragen
Übungsprogramm: Münzwurf debuggen
6 Listen
Der Listendatentyp
Indizes
Negative Indizes
Ausschnitte (Slices)
Die Funktion len()
Wertaktualisierungen
Verkettung und Vervielfältigung
del-Anweisungen
Arbeiten mit Listen
for-Schleifen und Listen
Die Operatoren in und not in
Der Trick der Mehrfachzuweisung
Enumerierung von Listenelementen
Zufällige Auswahl und Anordnung
Erweiterte Zuweisungsoperatoren
Methoden
Werte finden
Werte hinzufügen
Werte entfernen
Werte sortieren
Umkehren von Werten
Kurzschlussauswertung mit booleschen Operatoren
Ein kurzes Programm: Magisches Orakel mit einer Liste
Sequenz-Datentypen
Veränderliche und unveränderliche Datentypen
Der Tupel-Datentyp
Typumwandlung zwischen Liste und Tupel
Referenzen
Argumente
Die Funktionen copy() und deepcopy()
Ein kurzes Programm: der Matrix-Bildschirmschoner
Zusammenfassung
Übungsfragen
Übungsprogramme
Komma-Code
Münzwurf-Serien
7 Dictionaries und Strukturierung von Daten
Der Dictionary-Datentyp
Vergleich von Dictionary und Liste
Schlüssel und Werte zurückgeben
Überprüfen, ob ein Schlüssel existiert
Standardwerte festlegen
Reale Objekte mithilfe von Datenstrukturen modellieren
Projekt 1:
Interaktiver Schachbrett-Simulator
Schritt 1: Das Programm einrichten
Schritt 2: Eine Schachbrettvorlage erstellen
Schritt 3: Das aktuelle Schachbrett ausgeben
Schritt 4: Manipulation des Schachbretts
Verschachtelte Dictionaries und Listen
Zusammenfassung
Übungsfragen
Übungsprogramme
Schach-Dictionary-Validator
Fantasy-Spiel-Inventar
Listen-zu-Dictionary-Beute-Umwandlung
8 Strings und Textbearbeitung
Arbeiten mit Strings
String-Literale
Indizes und Slices
Die in- und not in-Operatoren
f-Strings
Alternativen zu f-Strings: %s und format()
Nützliche String-Methoden
Groß- und Kleinschreibung ändern
Überprüfen von String-Eigenschaften
Den Anfang oder das Ende eines Strings überprüfen
Strings zusammenfügen und aufteilen
Text ausrichten und zentrieren
Entfernen von Leerzeichen
Numerische Codepunkte von Zeichen
Strings kopieren und einfügen
Projekt 2:
Aufzählungszeichen zum Wiki-Markup hinzufügen
Schritt 1: Kopieren und Einfügen aus der Zwischenablage
Schritt 2: Zeilen des Textes trennen
Schritt 3: Die bearbeiteten Zeilen verbinden
Ein kurzes Programm: Pig Latin
Zusammenfassung
Übungsaufgaben
Übungsprogramm: Tabellen-Drucker
Teil II: Aufgaben automatisieren
9 Texterkennung mit regulären Ausdrücken
Textmuster ohne reguläre Ausdrücke finden
Textmuster mit regulären Ausdrücken finden
Die Syntax regulärer Ausdrücke
Gruppieren mit Klammern
Escape-Sequenzen verwenden
Zeichen aus alternativen Gruppen abgleichen
Alle Übereinstimmungen zurückgeben
Qualifizierer-Syntax: Welche Zeichen sollen abgeglichen werden?
Zeichenklassen und negative Zeichenklassen verwenden
Kurzschreibweisen für Zeichenklassen verwenden
Alles mit dem Punktzeichen finden
Seien Sie vorsichtig, was Sie suchen
Quantifizierer-Syntax: Wie viele Qualifizierer sollen gefunden werden?
Ein optionales Muster finden
Null oder mehr Qualifizierer finden
Finden von einem oder mehreren Qualifizierern
Finden einer bestimmten Anzahl von Qualifizierern
Gieriges und nichtgieriges Suchen
Alles finden
Zeilenumbruchzeichen finden
Finden am Anfang und Ende eines Strings
Groß-/Kleinschreibungsunabhängiges Suchen
Strings ersetzen
Komplexe Regexes im ausführlichen Modus beherrschen
Kombinieren von re.IGNORECASE, re.DOTALL und re.VERBOSE
Projekt 3:
Kontaktinformationen aus umfangreichen Dokumenten extrahieren
Schritt 1: Eine Regex für Telefonnummern erstellen
Schritt 2: Erstellen Sie eine Regex für E-Mail-Adressen
Schritt 3: Alle Übereinstimmungen im Text der Zwischenablage finden
Schritt 4: Fassen Sie die Übereinstimmungen zu einem String zusammen Ideen für ähnliche Programme
Humre: ein Modul für menschenlesbare Regexes
Zusammenfassung
Übungsaufgaben
Übungsprogramme
Starke Passworterkennung
Regex-Version der strip()-Methode
10 Dateien lesen und schreiben
Dateien und Dateipfade
Pfad-Trennzeichen standardisieren
Pfade verbinden
Zugriff auf das aktuelle Arbeitsverzeichnis
Zugriff auf das Home-Verzeichnis
Absolute und relative Pfade angeben
Neue Ordner anlegen
Umgang mit absoluten und relativen Pfaden
Die Bestandteile eines Dateipfads ermitteln
Dateigrößen und Zeitstempel ermitteln
Dateien mithilfe von Glob-Mustern finden
Überprüfung der Pfadgültigkeit
Lesen und Schreiben von Dateien
Dateien öffnen
Den Inhalt von Dateien lesen
In Dateien schreiben
Verwendung von with-Anweisungen
Variablen mit dem shelve-Modul speichern
Projekt 4:
Erstellen Sie zufällige Quiz-Dateien
Schritt 1: Speichern der Quizdaten in einem Dictionary
Schritt 2: Erstellen der Quiz-Datei
Schritt 3: Die Antwortoptionen erstellen
Schritt 4: Schreiben des Inhalts der Dateien
Zusammenfassung
Übungsaufgaben
Übungsprogramme
Mad Libs
Regex-Suche
11 Dateien organisieren
Das Modul shutil
Dateien und Ordner kopieren
Verschieben und Umbenennen von Dateien und Ordnern
Dateien und Ordner dauerhaft löschen
Löschen in den Papierkorb
Einen Verzeichnisbaum durchlaufen
Dateien komprimieren mit dem Modul zipfile
ZIP-Dateien erstellen und hinzufügen
ZIP-Dateien lesen
Extrahieren aus ZIP-Dateien
Projekt 5:
Sichern Sie einen Ordner in einer ZIP-Datei
Schritt 1: Den Namen der ZIP-Datei festlegen
Schritt 2: Erstellen Sie die neue ZIP-Datei
Schritt 3: Durchlaufen Sie den Verzeichnisbaum
Ideen für weitere Programme
Zusammenfassung
Übungsaufgaben
Übungsprogramme
Selektives Kopieren
Unnötige Dateien löschen
Dateien umnummerieren
Amerikanische Datumsangaben ins europäische Format umwandeln
12 Kommandozeilenprogramme entwickeln und bereitstellen
Ist es das Programm, das alles wirkt und schafft?
Verwendung des Terminals
Die Kommandos cd, pwd, dir und ls
Die Umgebungsvariable PATH
PFAD-Bearbeitung
Die Kommandos »which« und »where«
Virtuelle Umgebungen
Python-Pakete mit pip installieren
Selbsterkennende Python-Programme
Textbasiertes Programmdesign
Kurze Kommandonamen
Kommandozeilenargumente
Zwischenablage-I/O
Farbiger Text mit Bext
Terminal leeren
Signal- und Textbenachrichtigung
Ein kurzes Programm: Schneesturm
Pop-up-Nachrichtenboxen mit PyMsgBox
Python-Programme bereitstellen
Windows
macOS
Ubuntu Linux
Ein kurzes Programm: Das aktuelle Arbeitsverzeichnis kopieren
Windows
macOS
Ubuntu Linux
Ein kurzes Programm: Zwischenablage-Recorder
Windows
macOS
Ubuntu Linux
Kompilieren von Python-Programmen mit PyInstaller
Zusammenfassung
Übungsaufgaben
Übungsprogramm: Machen Sie Ihre Programme bereit für den Einsatz
13 Web Scraping
HTTP und HTTPS
Projekt 6:
Starten Sie ein Programm mit dem browser-Modul
Schritt 1: Ermitteln der URL
Schritt 2: Kommandozeilenargumente verarbeiten
Schritt 3: Inhalt der Zwischenablage abrufen
Ideen für ähnliche Programme
Dateien mit »requests« aus dem Web laden
Webseiten herunterladen
Fehlerprüfung
Heruntergeladene Dateien auf dem Laufwerk speichern
Zugriff auf eine Wetter-API
Abrufen von Breitengrad und Längengrad
Das aktuelle Wetter abrufen
Eine Wettervorhersage abrufen
APIs erkunden
HTML verstehen
Das Format erkunden
Anzeigen des Quelltexts einer Webseite
Die Entwicklertools Ihres Browsers öffnen
HTML-Elemente finden
HTML mit Beautiful Soup parsen
Ein Beautiful-Soup-Objekt erstellen
Daten aus den Attributen eines Elements abrufen
Projekt 7:
Alle Suchergebnisse öffnen
Schritt 1: Die Suchseite abrufen
Schritt 2: Alle Ergebnisse finden
Schritt 3: Browser für jedes Ergebnis öffnen
Ideen für ähnliche Programme
Projekt 8:
XKCD-Comics herunterladen
Schritt 1: Das Programm entwerfen
Schritt 2: Die Webseite herunterladen
Schritt 3: Finden und Herunterladen des Comic-Bilds
Schritt 4: Das Bild speichern und den vorherigen Comic suchen
Ideen für ähnliche Programme
Den Browser mit Selenium steuern
Start eines von Selenium gesteuerten Browsers
Browser-Schaltflächen anklicken
Elemente auf der Seite finden
Elemente auf der Seite anklicken
Formulare ausfüllen und absenden
Sondertasten senden
Den Browser mit Playwright steuern
Starten eines von Playwright gesteuerten Browsers
Browser-Schaltflächen anklicken
Elemente auf der Seite finden
Elemente auf der Seite anklicken
Formulare ausfüllen und absenden
Sondertasten senden
Zusammenfassung
Übungsaufgaben
Übungsprogramme
Bildseiten-Downloader
2048
Link-Verifikation
14 Excel-Tabellen
Excel-Dateien lesen
Eine Arbeitsmappe öffnen
Lesen von Tabellen aus der Arbeitsmappe
Zellen aus Tabellen lesen
Umwandlung zwischen Spaltenbuchstaben und Spaltennummern
Zeilen und Spalten holen
Projekt 9:
Zensus-Statistiken erfassen
Schritt 1: Die Daten der Tabellenkalkulation einlesen
Schritt 2: Ausfüllen der Datenstruktur
Schritt 3: Speichern Sie die Ergebnisse in einer Datei
Ideen für vergleichbare Programme
Excel-Dokumente erstellen
Excel-Dateien erstellen und speichern
Erstellen und Entfernen von Tabellen
Werte in Zellen schreiben
Projekt 10:
Aktualisieren einer Tabellenkalkulation
Schritt 1: Eine Datenstruktur mit den aktualisierten Informationen anlegen
Schritt 2: Alle Zeilen überprüfen und fehlerhafte Preise anpassen
Ideen für vergleichbare Programme
Die Schriftart von Zellen festlegen
Formeln
Anpassen von Zeilen und Spalten
Festlegen von Zeilenhöhe und Spaltenbreite
Zellen zusammenführen und aufteilen
Fenster fixieren
Diagramme
Zusammenfassung
Übungsfragen
Übungsprogramme
Multiplikationstabellenersteller
Leere-Zeilen-Einfüger
15 Google Sheets
EZSheets installieren und einrichten
Ein neues Google Cloud-Projekt erstellen
Aktivieren der Sheets- und Drive-APIs
Konfiguration des OAuth-Zustimmungsbildschirms
Anmeldedaten erstellen
Anmelden mit der Anmeldedatendatei
Die Anmeldedatendatei widerrufen
Google Sheets-Tabellen
Erstellen, Hochladen und Auflisten von Spreadsheets
Zugriff auf Attribute von Spreadsheet
Herunterladen und Hochladen von Spreadsheets
Spreadsheets löschen
Worksheet-Objekte
Daten lesen und schreiben
Erstellen, Verschieben und Löschen von Tabellen
Tabellenblätter kopieren
Google Formulare
Projekt 11:
Schein-Blockchain-Kryptowährungsbetrug
Schritt 1: Überprüfung der fiktiven Blockchain
Schritt 2: Transaktionen durchführen
Arbeiten mit Anfragelimits in Google Sheets
Zusammenfassung
Übungsfragen
Übungsprogramme
Google Forms-Daten herunterladen
Spreadsheets in andere Formate umwandeln
Fehler in einem Spreadsheet erkennen
16 SQLite-Datenbanken
Tabellenkalkulationen vs. Datenbanken
SQLite im Vergleich zu anderen SQL-Datenbanken
Datenbanken und Tabellen erstellen
Verbindung zu Datenbanken herstellen
Tabellen erstellen
Datentypen definieren
Tabellen und Spalten auflisten
CRUD-Datenbankoperationen
Einfügen von Daten in die Datenbank
Daten aus der Datenbank auslesen
Daten in der Datenbank aktualisieren
Daten aus der Datenbank löschen
Transaktionen zurückrollen
Datenbanken fürs Backup sichern
Tabellen ändern und löschen
Mehrere Tabellen mit Fremdschlüsseln verbinden
In-Memory-Datenbanken und Backups
Datenbanken kopieren
SQLite-Anwendungen
Zusammenfassung
Übungsfragen
Übungsprogramme
Katzen-Impfstatus-Prüfer
Datenbank der Gerichtzutaten
17 PDFs und Word-Dokumente
PDF-Dokumente
Text extrahieren
Nachbearbeitung mit KI
Bilder extrahieren
PDFs aus anderen Seiten erstellen
Projekt 12:
Ausgewählte Seiten aus vielen PDFs kombinieren
Schritt 1: Alle PDF-Dateien ermitteln
Schritt 2: Jede PDF-Datei öffnen
Schritt 3: Speichern Sie die Ergebnisse
Ideen für vergleichbare Programme
Word-Dokumente
Word-Dokumente lesen
Den vollständigen Text aus einer .docx-Datei extrahieren
Formatierung von Paragraph- und Run-Objekten
Word-Dokumente schreiben
Überschriften hinzufügen
Zeilen- und Seitenumbrüche einfügen
Bilder einfügen
Zusammenfassung
Übungsfragen
Übungsprogramme
PDF-Paranoia
Individuelle Einladungen
18 CSV-, JSON- und XML-Dateien
Das CSV-Format
CSV-Dateien lesen
Datenzugriff in einer for-Schleife
CSV-Dateien schreiben
Verwendung von Tabs anstelle von Kommas
Verarbeitung von Kopfzeilen
Projekt 13:
Entfernen der Kopfzeile aus CSV-Dateien
Schritt 1: Jede Datei durchlaufen
Schritt 2: Lesen der Datei
Schritt 3: Die neue CSV-Datei schreiben
Ideen für vergleichbare Programme
Vielseitige Klartextformate
Json
Xml
Zusammenfassung
Übungsfragen
Übungsprogramm: Excel-zu-CSV-Konverter
19 Zeit messen, Aufgaben planen und Programme starten
Das Modul time
Den Epoch-Timestamp abrufen
Programme anhalten
Projekt 14:
Super-Stoppuhr
Schritt 1: Konfigurieren Sie das Programm zur Zeiterfassung
Schritt 2: Rundenzeiten erfassen und ausgeben
Ideen für vergleichbare Programme
Das Modul datetime
Zeitdauer darstellen
Pausieren bis zu einem bestimmten Datum
Umwandlung von datetime-Objekten in Strings
Konvertieren von Strings in datetime-Objekte
Andere Programme aus Python heraus starten
Kommandozeilenargumente an Prozesse übergeben
Ausgabe der gestarteten Kommandos lesen
Ausführen von Task Scheduler, launchd und cron
Dateien mit Standardanwendungen öffnen
Projekt 15:
Einfacher Countdown
Schritt 1: Herunterzählen
Schritt 2: Die Sounddatei abspielen
Ideen für vergleichbare Programme
Zusammenfassung
Übungsfragen
Übungsprogramme
Verschönerte Stoppuhr
Freitag-der-13.-Finder
20 Versand von E-Mail, Text und Push-Benachrichtigungen
Die Gmail-API
API aktivieren
E-Mails versenden
E-Mails lesen
Suche nach E-Mails
Anhänge herunterladen
SMS-E-Mail-Gateways
Push-Benachrichtigungen
Benachrichtigungen versenden
Metadaten übertragen
Benachrichtigungen empfangen
Zusammenfassung
Übungsfragen
Übungsprogramme
Regenschirm-Erinnerung
Automatischer Abmelder
Computersteuerung über E-Mail
21 Diagramme erstellen und Bilder manipulieren
Computerbilder Grundlagen
Farben und RGBA-Werte
Koordinaten und Box-Tupel
Bildmanipulation mit Pillow
Arbeiten mit dem Image-Datentyp
Bilder zuschneiden
Bilder in andere Bilder einfügen
Bilder skalieren
Bilder drehen und spiegeln
Einzelne Pixel ändern
Projekt 16:
Ein Logo hinzufügen
Schritt 1: Das Logo-Bild öffnen
Schritt 2: Über alle Dateien iterieren
Schritt 3: Die Bilder skalieren
Schritt 4: Logo hinzufügen und Änderungen speichern
Ideen für ähnliche Programme
Zeichnen auf Bildern
Formen
Text
Bilder in die Zwischenablage kopieren und daraus einfügen
Diagramme mit Matplotlib erstellen
Liniendiagramme und Streudiagramme
Balkendiagramme und Torten- oder Kreisdiagramme
Zusätzliche Komponenten
Zusammenfassung
Übungsfragen
Übungsprogramme
Fliesenleger
Foto-Ordner auf der Festplatte identifizieren
Individuelle Sitzkarten erstellen
22 Texterkennung in Bildern
Tesseract und PyTesseract installieren
Windows
macOS
Linux
PyTesseract
Grundlagen der OCR
Vorverarbeitung eines Bildes
Fehlerkorrektur mit großen Sprachmodellen
Texterkennung in nichtenglischen Sprachen
Die NAPS2-Scanner-Anwendung
NAPS2 installieren und einrichten
NAPS2 aus Python heraus ausführen
Eingabe spezifizieren
Zusammenfassung
Übungsfragen
Übungsprogramm: Browser-Text-Scraper
23 Steuerung von Tastatur und Maus
Einrichten von Bedienungshilfen-Apps in macOS
Den Kurs beibehalten
Pausen und Sicherheitsmechanismen
Abmeldungen
Steuerung der Mausbewegung
Den Mauszeiger bewegen
Die aktuelle Position ermitteln
Steuerung der Mausinteraktion
Klicken
Ziehen
Scrollen
Planen Sie Ihre Mausbewegungen
Screenshots aufnehmen
Bilderkennung
Fensterinformationen abrufen
Das aktive Fenster ermitteln
Fenster mit anderen Funktionen ermitteln
Fenster manipulieren
Die Tastatur steuern
Tastatureingabe-Strings senden
Tastennamen angeben
Drücken und Loslassen von Tasten
Tastenkombinationen ausführen
Einrichtung von GUI-Automatisierungsskripten
Anzeigen von Pop-up-Nachrichtenfeldern
Zusammenfassung
Übungsfragen
Übungsprogramme
Beschäftigt wirken
Textfelder mit der Zwischenablage auslesen
Einen spielenden Bot entwickeln
24 Text-zu-Sprache- und Spracherkennungsengines
Text-zu-Sprache-Engine
Sprachausgabe erzeugen
Sprachausgabe als WAV-Dateien speichern
Spracherkennung
Erstellung von Untertiteldateien
Herunterladen von Videos von Websites
Zusammenfassung
Übungsfragen
Übungsprogramme
Sprachausgabe zum Zahlenratespiel hinzufügen
»99 Bottles of Beer« singen
YouTube-Transkriptor
Anhang
A Installation von Drittanbieter-Paketen
pip installieren
pip auffinden
Pip aus virtuellen Umgebungen ausführen
Installation der in diesem Buch verwendeten Pakete
B Antworten auf Übungsfragen
Kapitel 1
Kapitel 2
Kapitel 3
Kapitel 4
Kapitel 5
Kapitel 6
Kapitel 7
Kapitel 8
Kapitel 9
Kapitel 10
Kapitel 11
Kapitel 12
Kapitel 13
Kapitel 14
Kapitel 15
Kapitel 16
Kapitel 17
Kapitel 18
Kapitel 19
Kapitel 20
Kapitel 21
Kapitel 22
Kapitel 23
Kapitel 24
Stichwortverzeichnis
Für meinen Neffen Jack
Al Sweigart ist Softwareentwickler, Autor, Künstler und Fellow der Python Software Foundation. Er hat mehrere Bücher zur Programmierung für Einsteiger verfasst, darunter Invent Your Own Computer Games with Python, The Big Book of Small Python Projects und Beyond the Basic Stuff with Python (alle erschienen bei No Starch Press). Außerdem ist er internationaler Sprecher auf verschiedenen PyCon-Konferenzen. Seine Website ist https://inventwithpython.com.
Berichte darüber, dass Al eine AI sei, sind stark übertrieben.
Dr. Daniel Zingaro ist außerordentlicher Professor für Informatik an der Universität von Toronto. International bekannt ist er für seinen einzigartig interaktiven Ansatz in der Lehre, seine wegweisende Forschung zum Lehren mit generativer KI sowie für seine Lehrbücher, die von Tausenden Studierenden weltweit genutzt werden. Er ist Autor von Algorithmic Thinking, 2. Auflage (No Starch Press, 2024), und Learn to Code by Solving Problems (No Starch Press, 2021) sowie Co-Autor von Learn AI-Assisted Python Programming with GitHub Copilot and ChatGPT (Manning, 2023).
Ich kenne Al Sweigart schon so lange, wie er Bücher schreibt. Zuerst lernte ich Al als Leser kennen, dann als Kollegen und in jüngerer Zeit als Freund. Al setzt sich intensiv und kritisch mit Programmierung auseinander – damit, wie Menschen lernen und wie wir als Gesellschaft zusammenleben. Sie könnten sich keinen besseren Lehrer wünschen.
Es gibt zwei Hauptgründe, warum Menschen sich mit Programmierung beschäftigen möchten. Viele verfolgen das Ziel, eine bestimmte Aufgabe zu automatisieren oder ein konkretes Problem mithilfe von Code zu lösen, während andere ein allgemeines Interesse daran haben, eine neue Fähigkeit zu erlernen. Häufig entsteht die Motivation zum Lernen aus einer Kombination dieser beiden Gründe. In jedem Fall ist Python eine ideale Programmiersprache zum Erlernen. Sie können eine große Auswahl an Bibliotheken herunterladen, mit denen sich nahezu jede vorstellbare Aufgabe automatisieren lässt, und Sie finden zahlreiche Python-Ressourcen, die es Ihnen fast immer ermöglichen, rasch mit der Lösung Ihrer wichtigsten Probleme zu beginnen.
Routineaufgaben mit Python automatisieren war schon bei seiner Veröffentlichung vor zehn Jahren ein brillantes Konzept – und ist es auch heute noch. Das zeigt sich daran, dass es seit seiner Veröffentlichung zu den wichtigsten Ressourcen für das Erlernen von Python zählt. Wenn Sie eine bestimmte Aufgabe direkt lösen möchten, finden Sie in diesem Buch zahlreiche praxisnahe Beispiele, die Sie an Ihre eigenen Bedürfnisse anpassen können. Wenn Sie ein umfassenderes Verständnis der Programmierung entwickeln möchten, bietet die Umsetzung praxisnaher Projekte, wie Sie sie hier finden, einen ausgezeichneten Weg dazu.
Es gab noch nie einen besseren Zeitpunkt, um Python zu lernen. Manche, die dem Hype um künstliche Intelligenz Glauben schenken, behaupten, Sie müssten Programmierung nicht mehr lernen, da KI-Tools den gesamten Code für Sie schreiben können. Andere sagen, dass von KI generierter Code unbrauchbar sei und niemals funktionieren werde. Wie so oft liegt die Wahrheit zwischen diesen beiden Extremen.
KI-Tools können Sie bei Ihrer Programmierarbeit durchaus unterstützen. Sie arbeiten jedoch wesentlich besser, wenn Sie bereits ein fundiertes Verständnis von Programmierung besitzen und wissen, wie Sie diese gezielt zur Lösung Ihrer konkreten Aufgaben einsetzen. Andernfalls stoßen Sie nahezu zwangsläufig auf Hürden, die weder Sie noch der KI-Assistent überwinden können. Wenn Sie jedoch das Wissen und Verständnis, das Sie mit diesem Buch erwerben, in Verbindung mit einem KI-Assistenten nutzen, sind Sie in der Lage, effizient nützliche und wirkungsvolle Werkzeuge für sich selbst zu erstellen.
Genießen Sie diese Reise; sie ist großartig!
Eric Matthes
Autor von Python Crashkurs (dpunkt.verlag, 2023)
Es ist irreführend, dass nur mein Name auf dem Umschlag erscheint. Ohne die Unterstützung vieler Menschen hätte ich ein solches Buch nicht verfassen können. Ich möchte meinem Verleger Bill Pollock danken, meinen Lektorinnen und Lektoren Laurel Chun, Leslie Shen, Greg Poulos, Jennifer Griffith-Delgado, Frances Saux, Jill Franklin, Sabrina Plomitallo-González und Allison Felus sowie dem übrigen Team von No Starch Press für ihre unschätzbare Unterstützung. Mein besonderer Dank gilt den technischen Gutachtern Ari Lacenski, Philip James und Dr. Daniel Zingaro für ihre wertvollen Anregungen, Korrekturen und die kontinuierliche Unterstützung.
Vielen Dank an alle bei der Python Software Foundation für ihre hervorragende Arbeit. Die Organisatorinnen, Organisatoren und freiwilligen Helfer aller PyCon- und DjangoCon-Konferenzen leisten Außergewöhnliches. Die Python-Community ist die beste, die ich in der Tech-Branche kennengelernt habe.
Vielen Dank.
Die Programmiersprache Python verfügt über eine Vielzahl von syntaktischen Konstrukten, Standardbibliotheksfunktionen und Merkmalen der interaktiven Entwicklungsumgebung. Zum Glück können Sie das meiste davon außer Acht lassen; Sie müssen lediglich genug lernen, um einige nützliche kleine Programme zu schreiben. Um dies zu erreichen, müssen Sie jedoch einige Programmierkonzepte beherrschen. Wie ein Zauberlehrling mögen Ihnen diese Konzepte zunächst mühsam erscheinen, doch mit etwas Übung werden Sie damit Ihren Computer wie mit einem Zauberstab steuern und beeindruckende Dinge vollbringen können.
Dieses Kapitel enthält einige Beispiele, die Sie dazu ermutigen, Code in der interaktiven Shell einzugeben – auch bekannt als die Read-Evaluate-Print Loop (REPL). Diese ermöglicht es Ihnen, Python-Anweisungen einzeln auszuführen (also laufen zu lassen) und direkt das Ergebnis zu sehen. Die Nutzung der interaktiven Shell eignet sich hervorragend, um zu verstehen, wie grundlegende Python-Anweisungen funktionieren. Probieren Sie es also aus, während Sie das Kapitel durcharbeiten. Sie erinnern sich an Dinge, die Sie selbst tun, wesentlich besser als an Dinge, die Sie lediglich gelesen haben.
Sie können die interaktive Shell starten, indem Sie den Mu-Editor öffnen. Die Einführung dieses Buchs enthält Anweisungen zum Herunterladen und Installieren. Öffnen Sie unter Windows das Startmenü, geben Sie Mu ein und starten Sie die Mu-App. Unter macOS öffnen Sie Ihren Applications-Ordner und doppelklicken auf Mu. Klicken Sie auf den Button Neu und speichern Sie eine leere Datei als blank.py. Wenn Sie diese leere Datei ausführen – entweder per Klick auf den Button Ausführen oder durch Drücken von F5 –, öffnet sich die interaktive Shell als neues Fenster unten im Mu-Editor. Sie sollten in der interaktiven Shell eine >>>-Eingabeaufforderung sehen.
Sie können die interaktive Shell auch über das Terminal (unter macOS und Linux) oder das Windows-Terminal (unter Windows; dort können Sie auch die ältere Eingabeaufforderung verwenden) starten. Öffnen Sie eines dieser Terminalfenster und geben Sie python (unter Windows) bzw. python3 (unter macOS und Linux) ein. Sie sehen dann ebenfalls die >>>-Eingabeaufforderung der interaktiven Shell. Wenn Sie ein Programm ausführen möchten, geben Sie python oder python3 gefolgt vom Namen der .py-Datei des Programms ein, zum Beispiel python blank.py. Achten Sie darauf, python nicht im Terminal von macOS auszuführen, da hierbei auf manchen Versionen von macOS möglicherweise die ältere, nicht mehr kompatible Python-2.7-Version gestartet wird. Sie sehen unter Umständen sogar eine Meldung wie WARNING: Python 2.7 is not recommended. Beenden Sie die interaktive Shell von 2.7 und verwenden Sie stattdessen python3.
Geben Sie an der Eingabeaufforderung 2 + 2 ein, um eine einfache Berechnung von Python durchführen zu lassen. Das Mu-Fenster sollte nun wie folgt aussehen:
>>> 2 + 2
4
>>>
In Python wird 2 + 2 als Ausdruck bezeichnet – das ist die grundlegendste Art von Programmieranweisung in der Sprache. Ausdrücke bestehen aus Werten (wie etwa 2) und Operatoren (wie etwa +) und lassen sich stets zu einem einzelnen Wert auswerten (d. h. darauf reduzieren). Das bedeutet: Sie können Ausdrücke überall im Python-Code verwenden, wo Sie auch einen Wert einsetzen könnten.
Im vorherigen Beispiel wird 2 + 2 zu einem einzelnen Wert, nämlich 4, ausgewertet. Auch ein einzelner Wert ohne Operatoren gilt als Ausdruck, er wird jedoch nur zu sich selbst ausgewertet, wie hier gezeigt:
>>> 2
2
Der Mu-Editor verfügt über eine REPL-Schaltfläche, die eine interaktive Shell mit einer Eingabeaufforderung wie In [1]: anzeigt. Auch der beliebte Jupyter-Notebook-Editor verwendet diese Art von interaktiver Shell. Sie können diese interaktive Shell genauso nutzen wie die normale interaktive Python-Shell mit der >>>-Eingabeaufforderung. REPLs gibt es nicht nur für Python, viele Programmiersprachen bieten ebenfalls REPLs an, sodass Sie mit ihrem Code experimentieren können.
Fehler sind in Ordnung!
Das Beste an Computern ist, dass sie exakt die Anweisungen ausführen, die Sie ihnen geben. Das ist aber auch ihre größte Schwäche. Computer können keinen gesunden Menschenverstand einsetzen, um zu erkennen, was Sie eigentlich vorhatten. Programme stürzen ab, wenn sie Code enthalten, den der Computer nicht versteht – dann zeigt Python eine Fehlermeldung an. Fehlermeldungen schaden Ihrem Computer jedoch nicht, also fürchten Sie sich nicht davor, Fehler zu machen. Ein Absturz bedeutet lediglich, dass das Programm unerwartet angehalten wurde.
