Für Annelie Margarete
Michael Weigend
Python 3
Schnelleinstieg
Programmieren lernen in 14 Tagen
Einfach und ohne Vorkenntnisse zum Profi
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.
ISBN ISBN 978-3-7475-0330-0
1. Auflage 2021
www.mitp.de
E-Mail: mitp-verlag@sigloch.de
Telefon: +49 7953 / 7189 - 079
Telefax: +49 7953 / 7189 - 082
© 2021 mitp Verlags GmbH & Co. KG
Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
»Python« and the Python logos are trademarks or registered trademarks of the Python Software Foundation, used by mitp Verlags GmbH & Co. KG with permission from the Foundation.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Lektorat: Janina Bahlmann
Sprachkorrektorat: Petra Heubach-Erdmann
Covergestaltung: Janina Bahlmann, Christian Kalkert
Covergrafik & Icons: Tanja Wehr, sketchnotelovers
Abbildungen & Grafiken: Michael Weigend
Electronic Publishing: Petra Kleinwegen
Dieses Ebook verwendet das ePub-Format und ist optimiert für die Nutzung mit dem iBooks-reader auf dem iPad von Apple. Bei der Verwendung anderer Reader kann es zu Darstellungsproblemen kommen.
Hinweis des Verlages zum Urheberrecht und Digitalen Rechtemanagement (DRM)
Der Verlag räumt Ihnen mit dem Kauf des ebooks das Recht ein, die Inhalte im Rahmen des geltenden Urheberrechts zu nutzen. Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheherrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und Einspeicherung und Verarbeitung in elektronischen Systemen.
Der Verlag schützt seine ebooks vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die ebooks mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert.
Bei Kauf in anderen ebook-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.
Impressum
Einleitung
E.1 Programmieren lernen in 14 Tagen
E.2 Der Aufbau des Buchs
E.3 Achten Sie auf den Schrifttyp!
E.4 Programmtexte und Lösungen zum Download
E.5 Fragen und Feedback
1 Willkommen zu Python!
1.1 Die Programmiersprache Python
1.2 Was ist ein Algorithmus?
1.3 Syntax und Semantik
1.4 Interpreter und Compiler
1.5 Python installieren
1.6 Python im interaktiven Modus
1.7 Die Entwicklungsumgebung IDLE
1.8 Hotkeys für die Python-Shell
1.9 Anweisungen
1.9.1 Ausdruck
1.9.2 Funktionsaufruf
1.9.3 Zuweisung
1.9.4 Erweiterte Zuweisungen
1.10 Zahlen verarbeiten – die Python-Shell als Taschenrechner
1.10.1 Operatoren
1.10.2 Variablen verwenden
1.11 Übungen
1.12 Lösung der Frage: Semantik im Alltag
2 Datentypen – die Python-Typ-Hierarchie
2.1 Literale und die Funktion type()
2.2 Die Python-Typ-Hierarchie
2.3 Standard-Typen
2.3.1 Ganze Zahl (int)
2.3.2 Gleitkommazahl (float)
2.3.3 Zeichenkette (str)
2.3.4 Tupel (tuple)
2.3.5 Liste (list)
2.3.6 Menge (set)
2.3.7 Dictionary (dict)
2.3.8 Wahrheitswerte – der Datentyp bool
2.4 Gemeinsame Operationen für Kollektionen
2.4.1 Kollektion
2.4.2 Sequenz
2.5 Objekte eines Typs erzeugen – Casting
2.6 Dynamische Typisierung
2.7 Übung: Anweisungen
3 Interaktive Programme
3.1 Das erste Python-Skript
3.2 Das EVA-Prinzip
3.3 Kommentare
3.4 Projekt: Volumenberechnung
3.5 Python-Programme starten
3.5.1 Ausführung auf der Kommandozeile
3.5.2 Start durch Anklicken des Programm-Icons unter Windows
3.5.3 Python-Programme unter Linux – die Shebang-Zeile
3.5.4 Starten im Finder von macOS
3.6 Fehler finden
3.6.1 Syntaxfehler
3.6.2 Laufzeitfehler
3.6.3 Semantische Fehler
3.6.4 Tipps zum Fehlerfinden
3.7 Übungen
3.8 Lösungen zu den Fragen
4 Kontrollstrukturen
4.1 Programmverzweigungen
4.1.1 Einseitige Verzweigung (if)
4.1.2 Projekt: Passwort
4.1.3 Zweiseitige Verzweigung (if…else)
4.1.4 Projekt: Kinokarte
4.1.5 Fallunterscheidung (if...elif...else)
4.1.6 Projekt: Auskunftautomat
4.2 Das Layout von Python-Programmen: Zeilen und Blöcke
4.2.1 Block
4.2.2 Zeilenstruktur
4.3 Bedingungen konstruieren
4.3.1 Boolesche Werte
4.3.2 Boolesche Operatoren
4.3.3 Vergleichsketten
4.3.4 Projekt: Früchte erkennen
4.4 Bedingte Wiederholung – while
4.4.1 Projekt: Aufsummieren
4.4.2 Projekt: Planeten
4.4.3 Endloswiederholung
4.5 Iterationen – for
4.5.1 Wiederholungen mit range()
4.6 Übungen
4.7 Lösungen zu den Fragen
5 Funktionen
5.1 Warum definiert man Funktionen?
5.2 Definition und Aufruf einer Funktion
5.2.1 Projekt: Fallhöhe berechnen
5.3 Optionale Parameter und voreingestellte Werte
5.3.1 Erweiterung des Projekts: Fallhöhe auf unterschiedlichen Himmelskörpern
5.4 Eine Funktion in der Shell testen
5.5 Die return-Anweisung
5.5.1 Prozeduren
5.5.2 Wirkungen der return-Anweisung
5.6 Positionsargumente und Schlüsselwortargumente
5.7 Guter Programmierstil
5.7.1 Funktionsname
5.7.2 Funktionsannotationen
5.7.3 Docstring
5.7.4 Signatur
5.8 Die print()-Funktion unter der Lupe
5.9 Globale und lokale Namen
5.10 Rekursive Funktionen
5.10.1 Projekt: Die Berechnung der Fakultät
5.11 Übungen
6 Mit Modulen arbeiten
6.1 Importanweisungen
6.1.1 Ein Modul importieren
6.1.2 Funktionen aus einem Modul importieren
6.2 Mathematische Funktionen: Das Modul math
6.3 Zufallsfunktionen: Das Modul random
6.3.1 Projekt: Würfeln
6.3.2 Projekt: Wer ist der Nächste?
6.4 Datum und Zeit
6.4.1 Projekt: Uhrzeit
6.5 Ein eigenes Modul erstellen
6.5.1 Projekt: Ein Modul zur Volumenberechnung
6.5.2 Welchen Vorteil haben Module?
6.6 Module aus dem Python Package Index (PyPI)
6.7 Übungen
7 Mit Kollektionen modellieren
7.1 Sequenzen
7.1.1 Listen
7.1.2 Tupel
7.1.3 Komplexe Sequenzen
7.1.4 Iteration über eine Liste aus Tupeln
7.1.5 Gemeinsame Operationen für Sequenzen
7.1.6 Spezielle Operationen für Listen
7.1.7 Sortieren
7.1.8 Eine Liste erzeugen
7.2 Projekt: Telefonliste
7.3 Dictionaries
7.3.1 Operationen für Dictionaries
7.3.2 Ein Dictionary ändern
7.4 Projekt: Vokabeltrainer
7.5 Übungen
7.6 Lösungen zu den Fragen
8 Daten speichern
8.1 Wie werden Daten gespeichert?
8.1.1 Dateien öffnen
8.1.2 Stream-Methoden
8.1.3 Texte speichern und laden
8.1.4 Binärdateien und Bytestrings
8.1.5 Pfade im Verzeichnisbaum
8.2 Projekt: Logbuch
8.3 Datenstrukturen speichern und laden: Das Modul pickle
8.3.1 Speichern
8.3.2 Laden
8.3.3 Laufzeitfehler abfangen: try...except
8.4 Projekt: Digitaler Planer
8.5 Daten aus dem Internet
8.6 Übung: News-Check
9 Textverarbeitung
9.1 Unicode-Nummern für Zeichen
9.2 Was sind Escape-Sequenzen?
9.3 Operationen für Strings
9.4 Projekt: Goethes Wortschatz
9.5 Projekt: Tageshöchsttemperatur
9.5.1 Ausblick: Reguläre Ausdrücke
9.6 Texte mit variablen Teilen
9.6.1 Platzhalter verwenden
9.6.2 Platzhalter mit Namen
9.7 Projekt: Storytelling
9.8 Übungen
9.9 Lösungen zu den Fragen
10 Grafische Benutzungsoberflächen
10.1 Widgets
10.2 Das Anwendungsfenster Tk
10.3 Ein Widget einfügen
10.4 Das Aussehen der Widgets gestalten
10.4.1 Die Größe eines Widgets
10.5 Gemeinsame Methoden der Widgets
10.6 Schaltflächen und Eventhandler
10.6.1 Projekt: Motivator
10.7 Das Layout verfeinern
10.8 Widgets zur Texteingabe
10.8.1 Einzeilige Eingabe: Das Entry-Widget
10.8.2 Projekt: Rechner
10.8.3 Mehrzeilige Eingabe: Das Text-Widget
10.8.4 Projekt: Reimen mit Goethe
10.9 Radiobuttons
10.9.1 Projekt: Währungsrechner
10.10 Dialogboxen
10.10.1 Projekt: Texteditor
10.11 Parallele Abläufe: Threads
10.11.1 Ein Experiment: Countdown
10.11.2 Eine Funktion in einem eigenen Thread ausführen
10.12 Übungen
10.13 Lösungen zu den Fragen
11 Grafik programmieren
11.1 Bilder auf Schaltflächen und Labels
11.1.1 Projekt: Würfelspiel
11.1.2 Projekt: Graustufen
11.2 Die Python Imaging Library (PIL)
11.2.1 Bilder als PIL.Image-Objekte in tkinter-Anwendungen
11.2.2 Projekt: Webcam-Viewer
11.3 Übungen
12 Fehler finden und vermeiden
12.1 Zusicherungen
12.2 Tracing
12.2.1 Beispiel: Quicksort
12.3 Debugging mit IDLE
12.3.1 Der Debugger der Python-Shell
12.3.2 Das Programm schrittweise durchlaufen
12.3.3 Haltepunkte setzen
12.4 Lösungen zu den Fragen
13 Objektorientierte Programmierung
13.1 Klassen und Objekte
13.1.1 Was ist Objektorientierung?
13.1.2 Klassen entwerfen und grafisch darstellen – UML
13.1.3 Definition einer Klasse
13.1.4 Objekte einer Klasse erzeugen: Instanziierung
13.1.5 Auf Attribute zugreifen
13.1.6 Methoden aufrufen
13.1.7 Objekte mit variablen Anfangswerten
13.1.8 Metaphern in der Programmierung
13.2 Projekt: Geld
13.3 Operatoren überladen – Polymorphie
13.3.1 Magische Methoden
13.4 Projekt: Abrechnung
13.5 Vererbung
13.6 Übungen
13.7 Lösungen zu den Fragen
14 Professionelle Software-Entwicklung
14.1 Die Laufzeit von Programmen
14.1.1 Schnelles Sortieren – Quicksort versus Straight Selection
14.1.2 Performance-Analyse mit dem Profiler
14.2 Agile Software-Entwicklung
14.2.1 Software Engineering
14.2.2 Einige Grundideen der agilen Software-Entwicklung
14.3 Projekt: Digitales Notizbuch
14.4 Test Driven Development mit doctest
14.5 Programmieren als Hobby und Beruf
14.6 Übung: Ticketbuchung
Stichwortverzeichnis
Mit diesem Buch haben Sie sich für einen einfachen, praktischen und fundierten Einstieg in die Welt der Programmierung entschieden. Sie lernen ohne unnötigen Ballast alles, was Sie wissen müssen, um Python effektiv für Projekte in Ihrem Berufs- und Interessensgebiet einzusetzen.
Wenn Sie Zeit genug haben, können Sie jeden Tag ein neues Kapitel durcharbeiten und so innerhalb von zwei Wochen Programmieren lernen. Alle Erklärungen sind leicht verständlich formuliert und setzen keine Vorkenntnisse voraus. Am besten lesen Sie das Buch neben der Computer-Tastatur und probieren die Programmbeispiele und Übungen gleich aus. Sie werden schnell erste Erfolge erzielen und Freude an der Programmierung finden.
Das Buch beginnt mit den Grundlagen: Installation von Python, Nutzung der Entwicklungsumgebung und Formulierung einfacher Anweisungen. Die Kapitel bauen aufeinander auf. Sie lernen Schritt für Schritt, wie man Daten lädt, verarbeitet und speichert und erhalten eine Einführung in die Verwendung von Funktionen und Modulen, objektorientierte Programmierung und die Gestaltung von grafischen Benutzungsoberflächen. Das letzte Kapitel schließlich gibt einen Einblick in fortgeschrittene Techniken (z.B. das Aufspüren von Schwachstellen im Programm mit einer Performance-Analyse) und zeigt Ihnen einige Möglichkeiten, wie Sie nach dem Schnelleinstieg Ihre Programmierkenntnisse weiterentwickeln können.
Gelegentlich stoßen Sie auf Zwischenfragen. Sie sind als kleine Lernaktivierung gedacht und werden am Ende des Kapitels beantwortet. Ihr Tagespensum schließt mit praktischen Programmier-Übungen, in denen Sie Ihr neu gewonnenes Wissen vertiefen können. Die Sterne neben den Übungen geben einen Hinweis auf die Schwierigkeit. Dabei sind Übungen mit zwei bis drei Sternen für Leserinnen und Leser gedacht, die eine besondere Herausforderung suchen. Die Lösungen zu diesen Übungen, die relativ viel Programmtext enthalten, sowie ein Glossar mit den wichtigsten Fachbegriffen stehen Ihnen auf der Website des Verlags zum Download zur Verfügung. Mehr dazu im übernächsten Abschnitt.
Am Ende des Buchs finden Sie ein Stichwortverzeichnis, das Ihnen hilft, bestimmte Themen im Buch schneller zu finden.
In diesem Buch hat der Schrifttyp eine Bedeutung. Das soll das Lesen erleichtern. Alle Programmtexte oder Teile von Programmtexten (wie z.B. Variablennamen) sind in einer nichtproportionalen Schrift (Monotype-Schrift) gesetzt.
|
|
Beispiel: Die Variable name hat den Wert 'Jessy'. |
In einigen Passagen der Programmtexte kommen kursiv gesetzte Monotype-Texte vor, die als Platzhalter gemeint sind. In einem Programm würde man den Platzhalter durch einen anderen, in den Zusammenhang passenden Text ersetzen.
|
|
Beispiel: Bei stream = open(dateiname) sind stream und dateiname Platzhalter. |
Das Buch enthält viele kleine Beispielprogramme. Sie sind als »Starterprojekte« gedacht und sollen Sie ermuntern, den Code weiterzuentwickeln und selbst etwas Neues auszuprobieren.
Der Code aller Beispielprogramme, die Lösungen zu den Übungen sowie ein Glossar stehen Ihnen auf der Webseite des Verlags unter www.mitp.de/0328 zum Download zur Verfügung.
Unsere Verlagsprodukte werden mit großer Sorgfalt erstellt. Sollten Sie trotzdem einen Fehler bemerken oder eine andere Anmerkung zum Buch haben, freuen wir uns über eine direkte Rückmeldung an lektorat@mitp.de.
Falls es zu diesem Buch bereits eine Errata-Liste gibt, finden Sie diese unter www.mitp.de/0328 im Reiter Downloads.
Wir wünschen Ihnen viel Erfolg und Spaß bei der Programmierung
mit Python!
Michael Weigend und das mitp-Lektorat