Für Annelie Margarete

Michael Weigend

Python 3

Schnelleinstieg

Programmieren lernen in 14 Tagen
Einfach und ohne Vorkenntnisse zum Profi

Impressum

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 Darstellungs­problemen 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 gel­tenden 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älti­gungen, Übersetzungen, Mikroverfilmungen und Einspeicherung  und Verarbeitung in elektroni­schen 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 sichtba­ren 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.

Inhalt

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

Einleitung

E.1  Programmieren lernen in 14 Tagen

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.

E.2  Der Aufbau des Buchs

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.

E.3  Achten Sie auf den Schrifttyp!

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.

E.4  Programmtexte und Lösungen zum Download

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.

E.5  Fragen und Feedback

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