Einstieg in Python – Ideal für Programmiereinsteiger

Werbung
Auf einen Blick
Auf einen Blick
1
Einführung .............................................................................................
17
2
Erste Schritte .........................................................................................
23
3
Programmierkurs .................................................................................
35
4
Datentypen ............................................................................................
83
5
Weiterführende Programmierung ................................................. 143
6
Objektorientierte Programmierung .............................................. 203
7
Verschiedene Module ........................................................................ 225
8
Dateien .................................................................................................... 257
9
Internet ................................................................................................... 303
10
Datenbanken ......................................................................................... 339
11
Benutzeroberflächen .......................................................................... 371
12
Unterschiede in Python 2 .................................................................. 445
13
Raspberry Pi ........................................................................................... 449
Inhalt
Inhalt
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 macOS .................................................
21
2
Erste Schritte
23
2.1
Python als Taschenrechner ......................................................................
23
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
Eingabe von Berechnungen ....................................................
Addition, Subtraktion und Multiplikation ..........................
Division, Ganzzahldivision und Modulo .............................
Rangfolge und Klammern ........................................................
Variablen und Zuweisung .......................................................
23
24
24
25
26
Erstes Programm ...........................................................................................
27
2.2.1
2.2.2
28
28
2.2
2.3
Hallo Welt .....................................................................................
Eingabe eines Programms .......................................................
Speichern und Ausführen .........................................................................
28
2.3.1
2.3.2
2.3.3
2.3.4
Speichern .......................................................................................
Ausführen unter Windows ......................................................
Ausführen unter Ubuntu Linux und unter macOS ..........
Kommentare ................................................................................
29
29
31
32
2.3.5
2.3.6
Verkettung von Ausgaben .......................................................
Lange Ausgaben ..........................................................................
32
33
5
Inhalt
Inhalt
3
3.1
3.2
Programmierkurs
Ein Spiel programmieren ..........................................................................
35
3.1.1
35
Der Ablauf des Spiels ................................................................
Variablen und Operatoren .......................................................................
36
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
Berechnung und Zuweisung ..................................................
Eingabe einer Zeichenkette ....................................................
Eingabe einer Zahl .....................................................................
Spiel, Version mit Eingabe ......................................................
Zufallszahlen ...............................................................................
36
37
37
38
40
Verzweigungen .............................................................................................
41
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.3.7
3.3.8
Vergleichsoperatoren ...............................................................
Einfache Verzweigung .............................................................
Spiel, Version mit Bewertung der Eingabe ........................
Mehrfache Verzweigung .........................................................
Logische Operatoren .................................................................
Mehrere Vergleichsoperatoren .............................................
Spiel, Version mit genauer Bewertung der Eingabe .......
Rangfolge der Operatoren ......................................................
41
42
43
44
46
48
49
50
Schleifen ...........................................................................................................
51
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
for-Schleife ...................................................................................
Schleifenabbruch mit »break« ..............................................
Geschachtelte Kontrollstrukturen .......................................
Spiel, Version mit for-Schleife und Abbruch .....................
for-Schleife mit »range()« .......................................................
Spiel, Version mit »range()« ...................................................
while-Schleife ..............................................................................
51
52
53
54
55
59
60
3.4.8
Spiel, Version mit while-Schleife und Zähler ....................
61
3.5
Entwicklung eines Programms ..............................................................
63
3.6
Fehler und Ausnahmen .............................................................................
64
3.3
3.4
3.6.1
3.6.2
3.6.3
3.6.4
3.6.5
6
35
Basisprogramm ..........................................................................
Fehler abfangen .........................................................................
Eingabe wiederholen ................................................................
Exkurs: Schleifenfortsetzung mit »continue« ..................
Spiel, Version mit Ausnahmebehandlung .........................
64
65
67
68
69
3.7
Funktionen und Module ............................................................................
71
3.7.1
3.7.2
3.7.3
3.7.4
3.7.5
Einfache Funktionen ..................................................................
Funktionen mit einem Parameter .........................................
Funktionen mit mehreren Parametern ...............................
Funktionen mit Rückgabewert ..............................................
Spiel, Version mit Funktionen ................................................
72
73
75
75
76
3.8
Das fertige Spiel ............................................................................................
78
4
Datentypen
83
Zahlen ................................................................................................................
83
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
4.1.7
4.1.8
4.1.9
Ganze Zahlen ...............................................................................
Zahlen mit Nachkommastellen .............................................
Typ ermitteln ................................................................................
Operator ** ....................................................................................
Rundung und Konvertierung ..................................................
Winkelfunktionen ......................................................................
Weitere mathematische Funktionen ...................................
Bitoperatoren ...............................................................................
Brüche .............................................................................................
83
85
86
87
87
89
90
91
94
Zeichenketten ................................................................................................
97
4.1
4.2
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.2.6
4.2.7
4.3
4.4
Eigenschaften ..............................................................................
Operatoren ...................................................................................
Operationen .................................................................................
Funktionen ....................................................................................
Umwandlung einer Zeichenkette in eine Zahl .................
Umwandlung einer Zahl in eine Zeichenkette .................
Datentyp »bytes« .......................................................................
97
98
100
102
106
108
108
Listen ..................................................................................................................
109
4.3.1
4.3.2
4.3.3
Eigenschaften ..............................................................................
Operatoren ...................................................................................
Funktionen und Operationen .................................................
110
112
112
Tupel ...................................................................................................................
116
4.4.1
4.4.2
4.4.3
116
116
118
Eigenschaften ..............................................................................
Operationen .................................................................................
Tupel entpacken .........................................................................
7
Inhalt
Inhalt
4.5
4.6
4.7
4.8
120
4.5.1
4.5.2
4.5.3
4.5.4
Eigenschaften ..............................................................................
Operatoren und Funktionen ..................................................
Views ..............................................................................................
Vergleiche .....................................................................................
120
122
123
125
Mengen, Sets .................................................................................................
126
4.6.1
4.6.2
4.6.3
4.6.4
Eigenschaften ..............................................................................
Funktionen ...................................................................................
Operatoren ...................................................................................
Frozenset ......................................................................................
126
127
128
130
Wahrheitswerte und Nichts ....................................................................
131
4.7.1
4.7.2
Wahrheitswerte True und False ............................................
Nichts, None ................................................................................
132
135
Referenz, Identität und Kopie ................................................................
137
4.8.1
4.8.2
4.8.3
137
139
140
Referenz und Identität .............................................................
Ressourcen sparen .....................................................................
Objekte kopieren ........................................................................
5
Weiterführende Programmierung
143
5.1
Allgemeines ....................................................................................................
143
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
Kombinierte Zuweisungsoperatoren ..................................
Programmzeile in mehreren Zeilen .....................................
Eingabe mit Hilfestellung .......................................................
Anweisung »pass« .....................................................................
Funktionen »eval()« und »exec()« ........................................
143
145
146
147
149
Ausgabe und Formatierung ....................................................................
150
5.2.1
5.2.2
5.2.3
5.2.4
Funktion »print()« ......................................................................
Formatierung mit String-Literalen .......................................
Formatierung mit »format()« ................................................
Formatierung wie in C ..............................................................
150
152
156
158
Conditional Expression ..............................................................................
159
5.2
5.3
8
Dictionarys ......................................................................................................
5.4
Iterierbare Objekte ......................................................................................
160
5.4.1
5.4.2
5.4.3
Funktion »zip()« ...........................................................................
Funktion »map()« .......................................................................
Funktion »filter()« .......................................................................
161
161
164
5.5
List Comprehension .....................................................................................
164
5.6
Fehler und Ausnahmen ..............................................................................
167
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
5.6.6
Allgemeines ..................................................................................
Syntaxfehler .................................................................................
Laufzeitfehler ...............................................................................
Logische Fehler und Debugging ............................................
Fehler erzeugen ...........................................................................
Unterscheidung von Ausnahmen .........................................
167
167
169
169
174
175
Funktionen ......................................................................................................
177
5.7.1
5.7.2
5.7.3
5.7.4
5.7.5
5.7.6
5.7.7
5.7.8
5.7.9
Variable Anzahl von Parametern ..........................................
Benannte Parameter .................................................................
Voreinstellung von Parametern ............................................
Mehrere Rückgabewerte ..........................................................
Übergabe von Kopien und Referenzen ................................
Lokal, global ..................................................................................
Rekursive Funktionen ................................................................
Lambda-Funktion .......................................................................
Funktionsname als Parameter ...............................................
177
178
179
181
182
185
186
187
188
Eingebaute Funktionen .............................................................................
189
5.8.1
5.8.2
5.8.3
Funktionen »max()«, »min()« und »sum()« ........................
Funktionen »chr()« und »ord()« .............................................
Funktionen »reversed()« und »sorted()« .............................
191
192
193
5.9
Statistikfunktionen .....................................................................................
194
5.10
Eigene Module ...............................................................................................
196
5.10.1
5.10.2
Eigene Module erzeugen .........................................................
Eigene Module verwenden ......................................................
197
197
Parameter der Kommandozeile .............................................................
199
5.11.1
5.11.2
5.11.3
199
199
200
5.7
5.8
5.11
Übergabe von Zeichenketten .................................................
Übergabe von Zahlen ................................................................
Beliebige Anzahl von Parametern .........................................
9
Inhalt
Inhalt
6
Objektorientierte Programmierung
7.4
Reguläre Ausdrücke .....................................................................................
247
7.4.1
7.4.2
Suchen von Teiltexten ..............................................................
Ersetzen von Teiltexten ............................................................
248
252
7.5
Audioausgabe ................................................................................................
255
8
Dateien
257
6.1
Was ist OOP? ..................................................................................................
203
6.2
Klassen, Objekte und eigene Methoden ...........................................
204
6.3
Konstruktor und Destruktor ...................................................................
206
6.4
Besondere Methoden .................................................................................
208
6.5
Operatormethoden .....................................................................................
209
6.6
Referenz, Identität und Kopie ................................................................
211
8.1
Dateitypen .......................................................................................................
257
6.7
Vererbung .......................................................................................................
213
8.2
Öffnen und Schließen einer Datei .........................................................
258
6.8
Mehrfachvererbung ....................................................................................
216
8.3
Sequenzielle Dateien ..................................................................................
259
6.9
Enumerationen .............................................................................................
219
6.10
Spiel, objektorientierte Version ............................................................
220
8.3.1
8.3.2
8.3.3
8.3.4
259
261
266
269
7
Verschiedene Module
225
7.1
Datum und Zeit .............................................................................................
225
7.1.1
7.1.2
7.1.3
7.1.4
7.1.5
225
227
229
230
232
7.1.6
7.1.7
7.2
7.3
10
203
Ausgabe der Zeit mit »localtime()« ......................................
Ausgabe der Zeit mit »strftime()« ........................................
Zeitangabe erzeugen ................................................................
Mit Zeitangaben rechnen .......................................................
Programm anhalten ..................................................................
8.4
8.5
8.6
Sequenzielles Schreiben ...........................................................
Sequenzielles Lesen ...................................................................
CSV-Datei schreiben ..................................................................
CSV-Datei lesen ...........................................................................
Dateien mit festgelegter Struktur ........................................................
271
8.4.1
8.4.2
8.4.3
Formatiertes Schreiben ............................................................
Lesen an beliebiger Stelle ........................................................
Schreiben an beliebiger Stelle ................................................
271
272
274
Serialisierung ..................................................................................................
276
8.5.1
8.5.2
Objekte in Datei schreiben ......................................................
Objekte aus Datei lesen ............................................................
276
278
Bearbeitung mehrerer Dateien ..............................................................
280
8.6.1
8.6.2
Funktion »glob.glob()« ..............................................................
Funktion »os.scandir()« .............................................................
280
281
Spiel, Version mit Zeitmessung ............................................
Spiel, objektorientierte Version mit Zeitmessung ..........
233
235
Container »double-ended queue« .......................................................
236
8.7
Informationen über Dateien ...................................................................
282
7.2.1
7.2.2
Operationen .................................................................................
Veränderungen ...........................................................................
237
239
8.8
Dateien und Verzeichnisse verwalten ................................................
284
Multithreading ..............................................................................................
241
7.3.1
7.3.2
7.3.3
7.3.4
7.3.5
241
241
243
244
246
Wozu dient Multithreading? .................................................
Erzeugung eines Threads ........................................................
Identifizierung eines Threads ................................................
Gemeinsame Daten und Objekte .........................................
Threads und Exceptions ..........................................................
8.9
8.10
Beispielprojekt Morsezeichen .................................................................
285
8.9.1
8.9.2
8.9.3
285
287
288
Morsezeichen aus Datei lesen ................................................
Ausgabe auf dem Bildschirm ..................................................
Ausgabe mit Tonsignalen ........................................................
Spiel, Version mit Highscore-Datei .......................................................
290
8.10.1
291
Eingabebeispiel ...........................................................................
11
Inhalt
Inhalt
8.10.2
8.10.3
Aufbau des Programms ...........................................................
Code des Programms ................................................................
291
292
8.11
Spiel, objektorientierte Version mit Highscore-Datei .................
297
9
Internet
303
9.1
Laden und Senden von Internetdaten ................................................
303
9.1.1
9.1.2
9.1.3
Daten lesen ..................................................................................
Daten kopieren ...........................................................................
Daten senden per »GET« .........................................................
304
306
307
9.1.4
Daten senden per »POST« .......................................................
310
Webserver-Programmierung ..................................................................
312
9.2.1
9.2.2
9.2.3
9.2.4
Erstes Programm ........................................................................
Beantworten einer Benutzereingabe ..................................
Formularelemente mit mehreren Werten ........................
Typen von Formularelementen .............................................
313
314
317
320
9.3
Browser aufrufen .........................................................................................
326
9.4
Spiel, Version für das Internet ...............................................................
326
9.4.1
9.4.2
9.4.3
327
328
329
9.2
12
Eingabebeispiel ...........................................................................
Aufbau des Programms ...........................................................
Code des Programms ................................................................
10
Datenbanken
339
10.1
Aufbau von Datenbanken ........................................................................
339
10.2
SQLite ................................................................................................................
340
10.2.1
10.2.2
10.2.3
10.2.4
10.2.5
10.2.6
10.2.7
10.2.8
341
343
344
347
349
350
352
354
Datenbank, Tabelle und Datensätze ...................................
Daten anzeigen ...........................................................................
Daten auswählen, Operatoren ..............................................
Operator »LIKE« ..........................................................................
Sortierung der Ausgabe ...........................................................
Auswahl nach Eingabe .............................................................
Datensätze ändern ....................................................................
Datensätze löschen ...................................................................
10.3
10.4
SQLite auf dem Webserver .......................................................................
355
MySQL ................................................................................................................
357
10.4.1
10.4.2
10.4.3
10.4.4
10.4.5
XAMPP und Connector/Python ..............................................
Datenbank erzeugen .................................................................
Tabelle anlegen ...........................................................................
Datensätze anlegen ...................................................................
Daten anzeigen ...........................................................................
358
359
360
362
363
10.5
Spiel, Version mit Highscore-Datenbank ...........................................
364
10.6
Spiel, objektorientierte Version mit Highscore-Datenbank .....
367
11
Benutzeroberflächen
371
Einführung .......................................................................................................
371
11.1.1
11.1.2
372
374
11.1
11.2
11.3
Eine erste GUI-Anwendung .....................................................
Ändern von Eigenschaften ......................................................
Widget-Typen ................................................................................................
375
11.2.1
11.2.2
11.2.3
11.2.4
11.2.5
11.2.6
11.2.7
11.2.8
11.2.9
Anzeigefeld, Label .......................................................................
Einzeilige Textbox, Entry ..........................................................
Versteckte Eingabe .....................................................................
Mehrzeilige Textbox, Text .......................................................
Scrollende Textbox, ScrolledText ..........................................
Listbox mit einfacher Auswahl ..............................................
Listbox mit mehrfacher Auswahl ..........................................
Scrollbar, scrollende Widgets .................................................
Radiobuttons zur Auswahl, Widget-Variablen .................
375
378
380
382
384
386
388
389
391
11.2.10
11.2.11
11.2.12
11.2.13
11.2.14
Radiobuttons zur Auswahl und Ausführung ....................
Checkbuttons zur mehrfachen Auswahl ............................
Schieberegler, Scale ...................................................................
Mausereignisse ...........................................................................
Tastaturereignisse ......................................................................
394
395
397
400
403
Geometrische Anordnung von Widgets .............................................
405
11.3.1
11.3.2
11.3.3
11.3.4
406
408
412
414
Frame-Widget, Methode »pack()« ........................................
Ein einfacher Taschenrechner ................................................
Methode »grid()« ........................................................................
Methode »place()«, absolute Koordinaten .........................
13
Inhalt
Inhalt
11.3.5
11.3.6
11.3.7
11.4
11.5
416
418
419
Menüs, Messageboxen und Dialogfelder .........................................
423
11.4.1
11.4.2
11.4.3
11.4.4
11.4.5
Menüleisten .................................................................................
Kontextmenüs ............................................................................
Messageboxen ............................................................................
Eigene Dialogfelder ...................................................................
Ausführung verhindern ...........................................................
424
429
431
436
438
Spiel, GUI-Version ........................................................................................
439
12
Unterschiede in Python 2
445
12.1
Neue und geänderte Eigenschaften ....................................................
445
12.1.1
12.1.2
Auffällige Änderungen .............................................................
Weitere Änderungen ................................................................
445
446
12.2
Konvertierung von Python 2 zu Python 3 .........................................
447
13
Raspberry Pi
449
13.1
13.2
13.3
14
Methode »place()«, relative Koordinaten ..........................
Absolute Veränderung von Koordinaten ...........................
Relative Veränderung von Koordinaten .............................
Einzelteile und Installation ......................................................................
449
13.1.1
13.1.2
13.1.3
13.1.4
13.1.5
Einzelteile .....................................................................................
Sicherheit und Schäden ...........................................................
Zusammenbau ............................................................................
Installation von Raspbian ........................................................
Start von Raspbian ....................................................................
449
450
451
451
452
Elektronische Schaltungen ......................................................................
453
13.2.1
13.2.2
13.2.3
13.2.4
Gleichspannungs-Stromkreis ................................................
Spannung ist Information .......................................................
Bauelemente und Ausrüstung ..............................................
Widerstände ................................................................................
453
454
455
455
Aufbau des GPIO-Anschlusses ................................................................
457
13.4
Lüftersteuerung ............................................................................................
459
13.4.1
13.4.2
13.4.3
13.4.4
13.4.5
13.4.6
13.4.7
13.4.8
459
459
460
461
462
463
464
465
Temperatur ermitteln ...............................................................
Leuchtdioden ...............................................................................
Leuchtdiode ansteuern .............................................................
Leuchtdiode blinken lassen .....................................................
Mehrere Leuchtdioden .............................................................
Lüfter ansteuern .........................................................................
Temperaturabhängige Lüftersteuerung .............................
Temperatur in Datenbank speichern ...................................
Anhang
469
A.1
Installation von XAMPP .............................................................................
469
A.1.1
A.1.2
A.1.3
Installation von XAMPP unter Windows ............................
Installation von XAMPP unter Ubuntu Linux ....................
Installation von XAMPP unter macOS .................................
469
470
470
UNIX-Befehle ..................................................................................................
471
A.2.1
A.2.2
A.2.3
471
472
473
A.2
A.3
Inhalt eines Verzeichnisses .....................................................
Verzeichnis anlegen, wechseln und löschen .....................
Datei kopieren, verschieben und löschen ..........................
Lösungen ..........................................................................................................
474
A.3.1
A.3.2
A.3.3
Lösungen zu Kapitel 2 ...............................................................
Lösungen zu Kapitel 3 ...............................................................
Lösungen zu Kapitel 5 ...............................................................
474
474
479
Index ....................................................................................................................................
481
15
Herunterladen