Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Einführung
17
1.1 Vorteile von Python
17
1.2 Verbreitung von Python
18
1.3 Aufbau des Buchs
18
1.4 Übungen
20
1.5 Installation von Python unter Windows
20
1.6 Installation von Python unter Ubuntu Linux
21
1.7 Installation von Python unter OS X
21
2 Erste Schritte
23
2.1 Python als Taschenrechner
23
2.1.1 Eingabe von Berechnungen
23
2.1.2 Addition, Subtraktion und Multiplikation
24
2.1.3 Division, Ganzzahldivision und Modulo
24
2.1.4 Rangfolge und Klammern
25
2.1.5 Variablen und Zuweisung
26
2.2 Erstes Programm
28
2.2.1 Hallo Welt
28
2.2.2 Eingabe eines Programms
28
2.3 Speichern und Ausführen
29
2.3.1 Speichern
29
2.3.2 Ausführen unter Windows
30
2.3.3 Ausführen unter Ubuntu Linux und unter OS X
32
2.3.4 Kommentare
33
2.3.5 Verkettung von Ausgaben
34
2.3.6 Lange Ausgaben
34
3 Programmierkurs
37
3.1 Ein Spiel programmieren
37
3.1.1 Das fertige Spiel
37
3.1.2 Der Weg zum fertigen Spiel
37
3.1.3 Mögliche Erweiterungen
38
3.2 Variablen und Operatoren
38
3.2.1 Berechnung und Zuweisung
38
3.2.2 Eingabe einer Zeichenkette
39
3.2.3 Eingabe einer Zahl
39
3.2.4 Spiel, Version mit Eingabe
41
3.2.5 Zufallszahlen
42
3.3 Verzweigungen
44
3.3.1 Vergleichsoperatoren
44
3.3.2 Einfache Verzweigung
44
3.3.3 Spiel, Version mit Bewertung der Eingabe
45
3.3.4 Mehrfache Verzweigung
47
3.3.5 Logische Operatoren
48
3.3.6 Mehrere Vergleichsoperatoren
50
3.3.7 Spiel, Version mit genauer Bewertung der Eingabe
51
3.3.8 Rangfolge der Operatoren
52
3.4 Schleifen
53
3.4.1 for-Schleife
54
3.4.2 Schleifenabbruch mit »break«
54
3.4.3 Geschachtelte Kontrollstrukturen
55
3.4.4 Spiel, Version mit for-Schleife und Abbruch
56
3.4.5 for-Schleife mit »range()«
58
3.4.6 Spiel, Version mit »range()«
61
3.4.7 while-Schleife
62
3.4.8 Spiel, Version mit while-Schleife und Zähler
63
3.5 Entwicklung eines Programms
65
3.6 Fehler und Ausnahmen
66
3.6.1 Basisprogramm
66
3.6.2 Fehler abfangen
67
3.6.3 Eingabe wiederholen
69
3.6.4 Exkurs: Schleifenfortsetzung mit »continue«
70
3.6.5 Spiel, Version mit Ausnahmebehandlung
71
3.7 Funktionen und Module
73
3.7.1 Einfache Funktionen
74
3.7.2 Funktionen mit einem Parameter
75
3.7.3 Funktionen mit mehreren Parametern
77
3.7.4 Funktionen mit Rückgabewert
77
3.7.5 Spiel, Version mit Funktionen
78
3.8 Das fertige Spiel
80
4 Datentypen
85
4.1 Zahlen
85
4.1.1 Ganze Zahlen
85
4.1.2 Zahlen mit Nachkommastellen
87
4.1.3 Operator **
88
4.1.4 Rundung und Konvertierung
88
4.1.5 Modul »math«
90
4.1.6 Bitoperatoren
91
4.1.7 Brüche
94
4.2 Zeichenketten
97
4.2.1 Eigenschaften
97
4.2.2 Operatoren
98
4.2.3 Operationen
99
4.2.4 Funktionen
102
4.2.5 Umwandlung von einer Zeichenkette in eine Zahl
105
4.2.6 Umwandlung von einer Zahl in eine Zeichenkette
107
4.2.7 Datentyp »bytes«
108
4.3 Listen
109
4.3.1 Eigenschaften
109
4.3.2 Operatoren
111
4.3.3 Funktionen und Operationen
112
4.4 Tupel
115
4.4.1 Eigenschaften
115
4.4.2 Operationen
116
4.4.3 Tupel entpacken
117
4.5 Dictionarys
120
4.5.1 Eigenschaften
120
4.5.2 Funktionen
121
4.5.3 Views
122
4.5.4 Vergleiche
124
4.6 Mengen, Sets
125
4.6.1 Eigenschaften
125
4.6.2 Funktionen
126
4.6.3 Operatoren
128
4.6.4 Frozenset
130
4.7 Wahrheitswerte und Nichts
131
4.7.1 Wahrheitswerte True und False
131
4.7.2 Nichts, None
134
4.8 Referenz, Identität und Kopie
136
4.8.1 Referenz und Identität
136
4.8.2 Ressourcen sparen
138
4.8.3 Objekte kopieren
139
5 Weiterführende Programmierung
141
5.1 Allgemeines
141
5.1.1 Kombinierte Zuweisungsoperatoren
141
5.1.2 Programmzeile in mehreren Zeilen
143
5.1.3 Eingabe mit Hilfestellung
144
5.1.4 Anweisung »pass«
145
5.1.5 Funktionen »eval()« und »exec()«
147
5.2 Ausgabe und Formatierung
148
5.2.1 Funktion »print()«
148
5.2.2 Formatierte Ausgabe mit »format()«
151
5.2.3 Formatierte Ausgabe wie in C
155
5.3 Conditional Expression
156
5.4 Iterierbare Objekte
157
5.4.1 Funktion »zip()«
157
5.4.2 Funktion »map()«
158
5.4.3 Funktion »filter()«
160
5.5 List Comprehension
161
5.6 Fehler und Ausnahmen
163
5.6.1 Allgemeines
163
5.6.2 Syntaxfehler
163
5.6.3 Laufzeitfehler
165
5.6.4 Logische Fehler und Debugging
165
5.6.5 Fehler erzeugen
170
5.6.6 Unterscheidung von Ausnahmen
171
5.7 Funktionen
172
5.7.1 Variable Anzahl von Parametern
173
5.7.2 Benannte Parameter
174
5.7.3 Voreinstellung von Parametern
175
5.7.4 Mehrere Rückgabewerte
176
5.7.5 Übergabe von Kopien und Referenzen
177
5.7.6 Lokal, global
180
5.7.7 Lambda-Funktion
181
5.7.8 Funktionsname als Parameter
182
5.8 Eingebaute Funktionen
183
5.8.1 Funktionen »max()«, »min()« und »sum()«
185
5.8.2 Funktionen »chr()« und »ord()«
186
5.8.3 Funktionen »reversed()« und »sorted()«
187
5.9 Statistikfunktionen
188
5.10 Eigene Module
190
5.10.1 Eigene Module erzeugen
190
5.10.2 Eigene Module verwenden
190
5.11 Parameter der Kommandozeile
192
5.11.1 Übergabe von Zeichenketten
192
5.11.2 Übergabe von Zahlen
193
5.11.3 Beliebige Anzahl von Parametern
193
6 Objektorientierte Programmierung
195
6.1 Was ist OOP?
195
6.2 Klassen, Objekte und eigene Methoden
196
6.3 Konstruktor und Destruktor
198
6.4 Besondere Methoden
200
6.5 Operatormethoden
201
6.6 Referenz, Identität und Kopie
202
6.7 Vererbung
204
6.8 Mehrfachvererbung
207
6.9 Enumerationen
209
6.10 Spiel, objektorientierte Version
211
7 Verschiedene Module
215
7.1 Datum und Zeit
215
7.1.1 Spielen mit Zeitangabe
215
7.1.2 Aktuelle Zeit ausgeben
215
7.1.3 Zeitangabe erzeugen
219
7.1.4 Mit Zeitangaben rechnen
220
7.1.5 Programm anhalten
222
7.1.6 Spiel, Version mit Zeitmessung
223
7.1.7 Spiel, objektorientierte Version mit Zeitmessung
225
7.2 Modul »collections«
226
7.3 Multithreading
228
7.3.1 Wozu dient Multithreading?
229
7.3.2 Erzeugung eines Threads
229
7.3.3 Identifizierung eines Threads
230
7.3.4 Gemeinsame Objekte
232
7.3.5 Threads und Exceptions
233
7.4 Reguläre Ausdrücke
234
7.4.1 Suchen von Teiltexten
235
7.4.2 Ersetzen von Teiltexten
239
7.5 Audio-Ausgabe
241
8 Dateien
243
8.1 Dateitypen
243
8.2 Öffnen und Schließen einer Datei
244
8.3 Sequentielle Dateien
245
8.3.1 Sequentielles Schreiben
245
8.3.2 Sequentielles Lesen
247
8.3.3 CSV-Datei schreiben
252
8.3.4 CSV-Datei lesen
254
8.4 Dateien mit festgelegter Struktur
256
8.4.1 Formatiertes Schreiben
256
8.4.2 Lesen an beliebiger Stelle
258
8.4.3 Schreiben an beliebiger Stelle
259
8.5 Serialisierung
261
8.5.1 Objekte in Datei schreiben
261
8.5.2 Objekte aus Datei lesen
263
8.6 Bearbeitung mehrerer Dateien
264
8.7 Informationen über Dateien
266
8.8 Dateien und Verzeichnisse verwalten
267
8.9 Beispielprojekt Morsezeichen
269
8.9.1 Morsezeichen aus Datei lesen
269
8.9.2 Ausgabe auf dem Bildschirm
271
8.9.3 Ausgabe mit Tonsignalen
272
8.10 Spiel, Version mit Highscore-Datei
274
8.10.1 Eingabebeispiel
274
8.10.2 Aufbau des Programms
275
8.10.3 Code des Programms
275
8.11 Spiel, objektorientierte Version mit Highscore-Datei
280
9 Internet
285
9.1 Laden und Senden von Internetdaten
285
9.1.1 Daten lesen
286
9.1.2 Daten kopieren
289
9.1.3 Daten senden per GET
289
9.1.4 Daten senden per POST
293
9.2 Webserver-Programmierung
296
9.2.1 Erstes Programm
296
9.2.2 Beantworten einer Benutzereingabe
298
9.2.3 Formularelemente mit mehreren Werten
301
9.2.4 Typen von Formularelementen
303
9.3 Browser aufrufen
309
9.4 Spiel, Version für das Internet
309
9.4.1 Eingabebeispiel
309
9.4.2 Aufbau des Programms
311
9.4.3 Code des Programms
312
10 Datenbanken
319
10.1 Aufbau von Datenbanken
319
10.2 SQLite
320
10.2.1 Datenbank, Tabelle und Datensätze
320
10.2.2 Daten anzeigen
323
10.2.3 Daten auswählen, Operatoren
324
10.2.4 Operator »LIKE«
326
10.2.5 Sortierung der Ausgabe
328
10.2.6 Auswahl nach Eingabe
329
10.2.7 Datensätze ändern
331
10.2.8 Datensätze löschen
333
10.3 SQLite auf dem Webserver
334
10.4 MySQL
336
10.4.1 XAMPP und Connector / Python
337
10.4.2 Datenbank erzeugen
337
10.4.3 Tabelle anlegen
338
10.4.4 Datensätze anlegen
340
10.4.5 Daten anzeigen
341
10.5 Spiel, Version mit Highscore-Datenbank
342
10.6 Spiel, objektorientierte Version mit Highscore-Datenbank
345
11 Benutzeroberflächen
347
11.1 Einführung
347
11.1.1 Eine erste GUI-Anwendung
347
11.1.2 Ändern von Eigenschaften
349
11.2 Widget-Typen
351
11.2.1 Anzeigefeld, Label
351
11.2.2 Einzeilige Textbox, Entry
354
11.2.3 Versteckte Eingabe
356
11.2.4 Mehrzeilige Textbox, Text
358
11.2.5 Scrollende Textbox, ScrolledText
360
11.2.6 Listbox mit einfacher Auswahl
361
11.2.7 Listbox mit mehrfacher Auswahl
363
11.2.8 Scrollbar, scrollende Widgets
365
11.2.9 Radiobuttons zur Auswahl, Widget-Variablen
367
11.2.10 Radiobuttons zur Auswahl und Ausführung
369
11.2.11 Checkbuttons zur mehrfachen Auswahl
371
11.2.12 Schieberegler, Scale
373
11.2.13 Mausereignisse
375
11.2.14 Tastaturereignisse
379
11.3 Geometrische Anordnung von Widgets
381
11.3.1 Frame-Widget, Methode »pack()«
381
11.3.2 Ein einfacher Taschenrechner
384
11.3.3 Methode »grid()«
388
11.3.4 Methode »place()«, absolute Koordinaten
390
11.3.5 Methode »place()«, relative Koordinaten
391
11.3.6 Absolute Veränderung von Koordinaten
393
11.3.7 Relative Veränderung von Koordinaten
395
11.4 Menüs, Messageboxen und Dialogfelder
398
11.4.1 Menüleisten
398
11.4.2 Kontextmenüs
403
11.4.3 Messageboxen
407
11.4.4 Eigene Dialogfelder
411
11.4.5 Ausführung verhindern
413
11.5 Spiel, GUI-Version
414
12 Neues in Python 3
421
12.1 Neue und geänderte Eigenschaften
421
12.1.1 Auffällige Änderungen
421
12.1.2 Weitere Änderungen
422
12.2 Konvertierung von Python 2 zu Python 3
423
13 Raspberry Pi
425
13.1 Einzelteile und Installation
425
13.1.1 Einzelteile
425
13.1.2 Sicherheit und Schäden
427
13.1.3 Zusammenbau
428
13.1.4 Installation
429
13.1.5 Update
429
13.1.6 WLAN und Internet
430
13.2 Elektronische Schaltungen
430
13.2.1 Gleichspannungs-Stromkreis
430
13.2.2 Spannung ist Information
431
13.2.3 Bauelemente und Ausrüstung
431
13.2.4 Widerstände
432
13.3 Aufbau des GPIO-Anschlusses
434
13.4 Leuchtdiode
436
13.4.1 Schaltung
436
13.4.2 LED ein- und ausschalten
437
13.4.3 LED blinken lassen
437
13.4.4 LED blinkt Morsezeichen
438
13.5 Taster
439
13.5.1 Schaltung
439
13.5.2 Einfache Prüfung des Tasters
440
13.5.3 Verbesserte Prüfung des Tasters
441
13.6 Messwerte ermitteln
442
13.6.1 Schaltung
442
13.6.2 Programm zum Ermitteln der Messwerte
443
13.6.3 Vorbereitung
443
13.7 Messwerte in Datenbank speichern
444
13.7.1 Datenbank erstellen
445
13.7.2 Messen und Speichern
445
13.7.3 Anzeige der Daten
447
Anhang
449
A.1 Installation von XAMPP
449
A.1.1 Installation von XAMPP unter Windows
449
A.1.2 Installation von XAMPP unter Ubuntu Linux
450
A.1.3 Installation von XAMPP unter OS X
451
A.2 UNIX-Befehle
451
A.2.1 Inhalt eines Verzeichnisses
452
A.2.2 Verzeichnis anlegen, wechseln und löschen
452
A.2.3 Datei kopieren, verschieben und löschen
453
A.3 Lösungen
454
A.3.1 Lösungen zu Kapitel 2
454
A.3.2 Lösungen zu Kapitel 3
455
A.3.3 Lösungen zu Kapitel 5
461
Index
463