Programmieren lernen
mit Python
Für Carolin Dorothea
Michael Weigend
So einfach!
lernen mit Python
Programmieren
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 978-3-7475-0657-8
1. Auflage 2023
www.mitp.de
Telefon: +49 7953 / 7189 - 079
Telefax: +49 7953 / 7189 - 082
© 2023 mitp-Verlags GmbH & Co. KG, Frechen
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.
Dieses E-Book verwendet das EPUB-Format und ist optimiert für die Nutzung mit Apple Books auf dem iPad von Apple. Bei der
Verwendung von anderen Readern kann es zu Darstellungsproblemen kommen.
Der Verlag räumt Ihnen mit dem Kauf des E-Books 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
Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen,
Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Der Verlag schützt seine E-Books vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop
des Verlages werden die E-Books mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert. Bei Kauf in
anderen E-Book-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der
jeweiligen Anbieter.
Lektorat: Janina Bahlmann
Sprachkorrektorat: Jürgen Benvenuti
Covergestaltung & Coverbild: Christian Kalkert
Illustrationen: Michael Weigend
Satz: Ulrich Borstelmann
Layoutgestaltung: Kai Neugebauer
electronic publication: CPI books GmbH, Leck, CPI-print.de
5
Inhalt
Einleitung
8
1 Willkommen in der Welt der Programmierung
10
1.1 Computerprogramme: Schlaue Texte für dumme Computer
12
1.2 Wahrscheinlich kannst du schon programmieren
16
1.3 Lösungen zu den Aufgaben im Text
22
2 Einstieg in Python
24
2.1 Was ist Python?
26
2.2 Python als Taschenrechner – die IDLE-Shell
28
2.3 Funktionen aufrufen
33
2.4 Module
34
2.5 Variablen
38
2.6 Der Python-Interpreter
41
3 Die ersten Programme
42
3.1 Der Python-Editor
44
Projekt:Der Begrüßungsautomat
45
3.2 Ein Programm im Dateimanager starten
49
3.3 Strings – Experimente in der IDLE-Shell
51
3.4 Das EVA-Prinzip
52
3.5 Zahlen eingeben
52
3.6 So oder so? Programmverzweigung
56
6
Inhalt
3.7 Zeilen und Blöcke – Layout eines Python-Programms
59
3.8 Noch einmal bitte! Wiederholung
60
Projekt:Zahlenraten
64
3.9 Wahr oder nicht wahr: Logische Aussagen
65
3.10 Logische Operatoren
66
3.11 Schwierige Entscheidungen
68
3.12 Datum und Zeit
72
4 Neue Möglichkeiten mit Funktionen
74
4.1 Wie definiert man eine Funktion?
77
4.2 Funktionen können Werte zurückgeben
83
Projekt:Volumenassistent – ein Programm mit Auswahlmenü
86
Projekt:Der Briefassistent – globale Variablen und Seiteneffekte
89
4.3 Bilder mit der Turtle-Grafik
92
4.4 Was ist Rekursion?
100
4.5 Rekursive Funktionen
101
5 Daten in Kollektionen zusammenfassen
104
5.1 Welche Arten von Kollektionen gibt es?
106
5.2 Suchen und aufzählen
110
5.3 Sequenzen verarbeiten
112
5.4 Listen können sich verändern
114
Projekt:Planeten aufzählen
117
Projekt:Digitales Telefonbuch
119
5.5 Dateien öffnen, speichern und bearbeiten
122
Projekt:Eine Notiz schreiben und als Textdatei speichern
125
5.6 Laufzeitfehler abfangen
126
7
5.7 Kollektionen speichern und laden
128
Projekt:Telefonnummern verwalten
129
Projekt:Die Reimmaschine
131
Projekt:Wie warm wird es? – Informationen aus dem Internet
134
6 Bunt und zum Anklicken:
Grafische Benutzungs oberflächen
138
Projekt:Digitaler Würfel
141
6.1 Widgets konfigurieren
143
Projekt:Farbmischer
147
Projekt:Dichten mit Goethe
150
Projekt:StarQuest – Bilder anzeigen
154
Projekt:Digitaluhr
157
7Der nächste Schritt: Die große Welt der Informatik
162
7.1 Die Geschwindigkeit von Programmen
164
7.2 Objektorientierte Programmierung – eigene Klassen definieren
168
7.3 Agile Software-Entwicklung – arbeiten wie die Profis
171
Projekt:Digitales Notizbuch – agil entwickelt
172
7.4 Webseiten programmieren mit JavaScript
180
7.5 Noch mehr Programmiersprachen
184
7.6 Programmierwettbewerbe
187
Lösungen
188
Stichwortverzeichnis
205
8
Einleitung
Python ist eine Programmiersprache, die sehr leicht zu erlernen ist und die sich
deshalb perfekt für deinen Einstieg in die Programmierung eignet.
Ich selbst habe Python im Jahr 2000 kennengelernt. Damals war ich an der
Technischen Universität Dortmund und betreute ein Team, das E-Learning-
Material zur Einführung in die Informatik entwickelte. Ein Kapitel widmete sich
dem Thema »Objektorientierte Programmierung« mit der bis dahin ziemlich
unbekannten Programmiersprache Python. Als ich die ersten Python-Skripte
sah, war ich sofort begeistert. Kurze Texte, deren Bedeutung man rasch erfas-
sen konnte. Ideal zum Lernen. Zwei Jahre später schrieb ich für den mitp-Verlag
mein erstes Python-Buch. Im Frühjahr 2003 besuchte ich zum ersten Mal die
PyCon, die internationale Konferenz der Python-Community, in Washington DC
(USA). Hier trafen sich Wissenschaftlerinnen und Wissenschaftler aus der ganzen
Welt und berichteten in Vorträgen, wie sie Python in ihren Fachgebieten ein-
setzten. Die Konferenztage begannen immer mit einem gemeinsamen Früh-
stück an großen Tischen im Ballsaal des Konferenzzentrums der George-
Washington-Universität. Hier traf ich auch Guido van Rossum, den Erfinder
der Programmiersprache Python. Während seines Vortrags wechselte er
mehrmals sein T-Shirt, damit die Farbe immer zur Vortragsfolie passte.
So wie die Menschen, die ich auf der PyCon kennengelernt hatte, ist
auch die Programmiersprache selbst: Sie ist offen, freundlich und
lädt zum Mitmachen ein.
Freue dich auf spannende Projekte, in denen du die wichtigsten
Konzepte von Python kennenlernst. Du schreibst praktische
Rechenprogramme, die sich mit dem Benutzer unterhalten.
Du gestaltest Spiele und digitale Assistenten zum Dichten,
Briefeschreiben und zum Bestimmen von Pflanzen. Du ent-
wickelst Benutzungsoberflächen mit Eingabefeldern und
Schaltflächen. In kreativen Projekten lässt du den Com-
puter Bilder zeichnen und Geschenkpapier drucken.
Du lernst, wie man Daten aus dem Internet verarbei-
ten kann und wie man eine App zum Speichern und
Verwalten von Notizen entwickelt.
9
Die Programmbeispiele sind kurz und können von dir weiter ausgebaut werden.
Alle wichtigen Codezeilen werden durch Texte und Bilder erklärt.
Du kannst die Programmbeispiele von der Website des mitp-Verlags herunter-
laden. Der URL ist:
https://www.mitp.de/0655
Wähle die Registerkarte Downloads und klicke auf den Link Programmbei-
spiele. Nach dem Entpacken hast du für jedes Kapitel ein Verzeichnis mit den
Programmen, die im Buch erklärt werden.
Viel Spaß mit Python!
Michael Weigend
1
Willkommen
in derWelt der
Programmierung
1.1 Computerprogramme: Schlaue Texte für dumme
Computer
1.2 Wahrscheinlich kannst du schon programmieren
1.3 Lösungen zu den Aufgaben im Text
12
1 Willkommen in der Welt der Programmierung!
1.1 Computerprogramme: Schlaue Texte für dumme Computer
Programmieren heißt ein Programm schreiben. Statt Pro-
gramm sagt man auch
App
oder
Software
. Ein Programm ist
ein Text, eine Schritt-für-Schritt-Anleitung für einen Com-
puter. Es besteht aus Anweisungen, die von einem Compu-
ter verstanden und ausgeführt werden können.
So ganz von allein macht ein Computer nichts. Program-
me sagen ihm, was er tun soll. Damit der Computer deine
Anweisungen versteht, musst du sie in einer Programmier-
sprache schreiben. Python ist eine solche Programmierspra-
che. Das Schöne ist: Python-Programme können nicht nur
von einem Computer verstanden werden, sie sind auch für
Menschen gut lesbar.
Programmierer nennen einen Programmtext oft auch
Code
und das Programmieren
Coding
.
Die universelle Maschine
Ein Computer ist eine universelle Maschine. Das heißt, er hat
nicht nur einen einzigen Verwendungszweck, sondern man
kann ihn für alle möglichen Aufgaben einsetzen.
Früher gab es für jeden Verwendungszweck eine spezielle
Maschine, zum Beispiel ein Telefon zum Telefonieren, einen
Kompass, der die Himmelsrichtung anzeigt, und so weiter.
All das und noch viel mehr kann heute ein ein-
ziger Computer, zum Beispiel dein Smartphone.
Mit deinem Smartphone kannst du telefonieren,
spielen, deinen Weg finden und vieles mehr. Für
jeden Verwendungszweck gibt es eine App.
13
1.1 Computerprogramme: Schlaue Texte für dumme Computer
1.1 Computerprogramme: Schlaue Texte für dumme Computer
Analog
In einer Sanduhr rieseln winzige Glaskugeln (kein
Sand) durch eine enge Öffnung. Die Menge der
durchgerieselten Glaskugeln entspricht der verstri-
chenen Zeit. Das nennt man
analog
(von altgrie-
chisch
analogos
für »entsprechend«).
Auch eine mechanische Uhr mit Zeigern arbeitet
analog. Der Winkel, um den sich ein Zeiger ge-
dreht hat, entspricht der Zeit, die vergangen ist.
Heute sind viele analoge Geräte durch Compu-
terprogramme ersetzt worden. Das nennt man
Digitalisierung
.
Digital
Eine Digitaluhr enthält einen Computer, der für
die Anzeige der genauen Uhrzeit sorgt. Weil man
Programme schneller und einfacher entwickeln kann
als mechanische Geräte mit Zeigern und Zahnrädern,
gibt es heute viele unterschiedliche Arten von digita-
len Uhren.
Später in diesem Buch erfährst du, wie du mit Py-
thon Uhren programmieren kannst (siehe Kapitel 3
und 6).
14
1 Willkommen in der Welt der Programmierung!
Hardware und Software
Ein Computer besteht aus
Hardware und Software. Die
Hardware umfasst alle Teile,
die man anfassen kann: das
Gehäuse, das Display, Laut-
sprecher, Kamera, die Chips
auf dem Motherboard im
Inneren, Batterie, Kabel und
so weiter.
Die Software ist unsichtbar.
Es sind alle Programme und
Daten, die sich im Speicher
befinden.
Betriebssystem
Eine besonders wichtige Software ist das
Betriebssystem (zum Beispiel Windows,
Linux oder macOs). Das Betriebssystem
sorgt dafür, dass die Apps auf die Hard-
ware zugreifen können.
15
1.1 Computerprogramme: Schlaue Texte für dumme Computer
Updates
Die Hardware eines modernen Computers ist sehr
stabil und geht selten kaputt. Die Software jedoch
bekommt häufig ein Update, das heißt, sie wird
durch eine neue, bessere Version ersetzt. Updates
sind vor allem wichtig, wenn man Sicherheitslü-
cken feststellt.
Wenn man ein Handy oder einen PC nicht mehr
weiterverwenden kann, liegt das meist daran,
dass man für alte Geräte keine Updates mehr be-
kommt.
Was ist eine Sicherheitslücke?
Eine Sicherheitslücke ist ein Fehler in der Soft-
ware, die es Hackern ermöglicht, den Computer
z.B. über das Internet anzugreifen. Bei einem
solchen Angriff können Daten verändert oder
gelöscht werden. Oder es wird bösartige Soft-
ware installiert, die später auf deinem Computer
Schaden anrichtet.
16
1 Willkommen in der Welt der Programmierung!
1.2 Wahrscheinlich kannst du schon programmieren
Wetten, dass du schon einige Programmiertechniken aus dem Alltag kennst? Program-
mieren ist nämlich gar nichts Besonderes.
Algorithmus
Im Prinzip ist ein Programm eine genaue Anleitung für den Computer, wie er eine be-
stimmte Aufgabe lösen soll. Eine solche Anleitung nennt man auch Algorithmus. Auch
die Lösung zu einem Streichholzrätsel ist ein Algorithmus. Kannst du das folgende
Rätsel lösen?
Lege ein einziges Streichholz um und sorge dafür, dass
die Gleichung stimmt.
Am Ende des Kapitels findest du ein Bild mit der Lösung.
Aber auch ein Text kann erklären, was zu tun ist:
Nimm das Streichholz, das in der Zahl Acht senk-
recht unten links liegt. Lege dieses Streichholz
waagrecht links neben den Kopf des oberen Streich-
holzes der Zahl Eins.
Verstanden? Dieser Text ist eine genaue Anleitung, wie man die Aufgabe lösen kann.
Er ist also ein Algorithmus.
Namen
Jetzt kommen wir zu einer speziellen Programmier-
technik. Der Algorithmus zum Streichholzrätsel wird
einfacher, wenn man an die Streichhölzer im Bild
Buchstaben schreibt. Damit gibt man den Streichhöl-
zern
Namen
, die im Algorithmus verwendet werden
können.
Hier ist ein Algorithmus mit Namen für die wichtigsten
Streichhölzer:
Nimm das Streichholz b und lege es waagrecht links neben den Kopf von Streichholz a.
Dieser Algorithmus ist wesentlich kürzer. Er hat nur zwei Zeilen statt vier Zeilen. Ist er nicht auch viel besser zu verstehen?
17
1.2 Wahrscheinlich kannst du schon programmieren
1.2 Wahrscheinlich kannst du schon programmieren
Was ist ein Algorithmus?
Ein Algorithmus ist eine Anleitung, mit der sich eine Aufgabe lösen lässt und die so genau und unmissverständlich
formuliert ist, dass sie im Prinzip auch von einer Maschine ausgeführt werden kann. Beispiele sind Kochrezepte,
Wegbeschreibungen oder Bauanleitungen. Auch die Lösung zu einem Streichholzrätsel ist ein Algorithmus.
Eindeutige
Anweisungen
In einem Algorith-
mus muss jede
Anweisung eindeutig
sein. Ein Computer,
der einem Programm
folgt, ist ein ziem-
lich dummer Be-
fehlsempfänger und
macht nur genau
das, was man ihm
sagt. Wir Men-
schen sind da etwas
anders. Wenn wir
im Alltag jemanden
bitten, etwas zu tun,
erwarten wir, dass
die Person mitdenkt.
Sonst kann es leicht
zu Missverständnis-
sen kommen.
In diesem Comic
entsteht ein Miss-
verständnis, weil der
Grillmeister nicht
genau erklärt hatte,
was er unter »auf-
passen« versteht.
18
1 Willkommen in der Welt der Programmierung!
Sequenz
Piraten haben auf der Insel einen Schatz versteckt. Die Schatz-
truhe befindet sich unter einem der vielen Gebüsche. Aber
unter welchem?
Der folgende Algorithmus beschreibt, wie du den Schatz findest:
Lege mit deinem Boot am Steg ganz im Süden der Insel an
und betritt die Insel. Gehe geradeaus über den Weg Rich-
tung Norden. Biege nach der vierten Palme nach rechts ab.
Der Schatz ist unter dem zweiten Busch auf der rechten
Seite des Wegs.
Weißt du, welcher Busch gemeint ist? Wenn du unsicher bist,
kannst du am Ende des Kapitels nachsehen. Du bist vielleicht
überrascht, wenn ich dir sage, dass in dieser Wegbeschreibung
eine bestimmte Programmiertechnik verwendet worden ist.
Die Palmen an dem Weg Richtung Norden wurden durchnummeriert. Zuerst kommt Palme Nummer 1, dann Palme Num-
mer 2, dann Palme Nummer 3 und dann Palme Nummer 4, hinter der der Schatzsucher abbiegen muss. Dinge, die Num-
mern haben und in einer bestimmten Reihenfolge sind, nennt man
Sequenz
. In der Programmierung verwendet man häufig
Sequenzen. Python enthält mehrere Arten von Sequenzen, zum Beispiel Listen und Zeichenketten.
Bedingung
Es geschah mittags in der Kölner Innenstadt. Zwei mas-
kierte Männer überfielen die Sparkasse und flüchteten
mit der Beute in einem Auto. Zum Glück gab es einige
Zeugenaussagen zum Fluchtfahrzeug:
»Das Auto der Bankräuber ist blau.«
»Ich habe das Kennzeichen gesehen. Der Wagen
kommt nicht aus Köln.«
»Das Autokennzeichen enthält eine 7.«
Überwachungskameras in der Umgebung der Sparkasse
haben folgende Autos fotografiert. Welches könnte das
Fluchtfahrzeug der Bankräuber sein?