Arnold V. Willemer
Python. Der Sprachkurs für Einsteiger und Individualisten (eBook, ePUB)
17,99 €
Statt 19,99 €**
17,99 €
inkl. MwSt.
**Preis der gedruckten Ausgabe (Broschiertes Buch)
Sofort per Download lieferbar
0 °P sammeln
17,99 €
Statt 19,99 €**
17,99 €
inkl. MwSt.
**Preis der gedruckten Ausgabe (Broschiertes Buch)
Sofort per Download lieferbar
Alle Infos zum eBook verschenken
0 °P sammeln
Als Download kaufen
Statt 19,99 €****
17,99 €
inkl. MwSt.
**Preis der gedruckten Ausgabe (Broschiertes Buch)
Sofort per Download lieferbar
0 °P sammeln
Jetzt verschenken
Alle Infos zum eBook verschenken
Statt 19,99 €****
17,99 €
inkl. MwSt.
**Preis der gedruckten Ausgabe (Broschiertes Buch)
Sofort per Download lieferbar
Alle Infos zum eBook verschenken
0 °P sammeln
Arnold V. Willemer
Python. Der Sprachkurs für Einsteiger und Individualisten (eBook, ePUB)
- Format: ePub
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Bitte loggen Sie sich zunächst in Ihr Kundenkonto ein oder registrieren Sie sich bei
bücher.de, um das eBook-Abo tolino select nutzen zu können.
Hier können Sie sich einloggen
Hier können Sie sich einloggen
Sie sind bereits eingeloggt. Klicken Sie auf 2. tolino select Abo, um fortzufahren.
Bitte loggen Sie sich zunächst in Ihr Kundenkonto ein oder registrieren Sie sich bei bücher.de, um das eBook-Abo tolino select nutzen zu können.
Python - einfach und leistungsfähig
Sie haben schon viel Gutes über Python gehört und möchten auch in Python programmieren? Dann brauchen Sie dieses Buch. Vorwissen hingegen brauchen Sie nicht. Arnold Willemer erklärt Ihnen zu Beginn, was ein Programmierer überhaupt macht und wie ein Computer mit Zahlen und Texten umgeht. Danach erarbeiten Sie sich mit ihm Schritt für Schritt die Kunst des Programmierens in Python. Die witzige und gut gelaunte Schreibe des Autors wirkt zusätzlich motivierend. Und Ihren Lernerfolg können Sie anhand vieler Aufgaben und Musterlösungen überprüfen. So…mehr
- Geräte: eReader
- mit Kopierschutz
- eBook Hilfe
- Größe: 3.78MB
Andere Kunden interessierten sich auch für
- John Paul MuellerPython programmieren lernen für Dummies (eBook, ePUB)17,99 €
- David SaleTesting Python (eBook, ePUB)25,99 €
- Barry BurdJava programmieren lernen für Dummies (eBook, ePUB)18,99 €
- John Paul MuellerBeginning Programming with Python For Dummies (eBook, ePUB)23,99 €
- Johannes C. HofmeisterPython für Dummies (eBook, ePUB)17,99 €
- Frank GeislerDocker für Dummies (eBook, ePUB)26,99 €
- Steffen SteinbrecherC# für Dummies (eBook, ePUB)24,99 €
-
-
-
Python - einfach und leistungsfähig
Sie haben schon viel Gutes über Python gehört und möchten auch in Python programmieren? Dann brauchen Sie dieses Buch. Vorwissen hingegen brauchen Sie nicht. Arnold Willemer erklärt Ihnen zu Beginn, was ein Programmierer überhaupt macht und wie ein Computer mit Zahlen und Texten umgeht. Danach erarbeiten Sie sich mit ihm Schritt für Schritt die Kunst des Programmierens in Python. Die witzige und gut gelaunte Schreibe des Autors wirkt zusätzlich motivierend. Und Ihren Lernerfolg können Sie anhand vieler Aufgaben und Musterlösungen überprüfen. So ermöglicht Ihnen das Buch zuverlässig den schnellen Einstieg in Python.
Aus dem Inhalt
. Programmieren für Einsteiger
. Beschaffung und Installation der notwendigen Werkzeuge
. Variablen, Abfragen, Schleifen, Funktionen
. Objektorientierte Programmierung
. Sequenzen, Tupel und Listen
. Grafi sche Oberfl ächen mit Tkinter
. Visualisieren mit dem Canvas-Widget
. Module und Bibliotheken
. Datenbankprogrammierung
. Kommunikation in Netzwerken und mit dem Betriebssystem
Sie haben schon viel Gutes über Python gehört und möchten auch in Python programmieren? Dann brauchen Sie dieses Buch. Vorwissen hingegen brauchen Sie nicht. Arnold Willemer erklärt Ihnen zu Beginn, was ein Programmierer überhaupt macht und wie ein Computer mit Zahlen und Texten umgeht. Danach erarbeiten Sie sich mit ihm Schritt für Schritt die Kunst des Programmierens in Python. Die witzige und gut gelaunte Schreibe des Autors wirkt zusätzlich motivierend. Und Ihren Lernerfolg können Sie anhand vieler Aufgaben und Musterlösungen überprüfen. So ermöglicht Ihnen das Buch zuverlässig den schnellen Einstieg in Python.
Aus dem Inhalt
. Programmieren für Einsteiger
. Beschaffung und Installation der notwendigen Werkzeuge
. Variablen, Abfragen, Schleifen, Funktionen
. Objektorientierte Programmierung
. Sequenzen, Tupel und Listen
. Grafi sche Oberfl ächen mit Tkinter
. Visualisieren mit dem Canvas-Widget
. Module und Bibliotheken
. Datenbankprogrammierung
. Kommunikation in Netzwerken und mit dem Betriebssystem
Dieser Download kann aus rechtlichen Gründen nur mit Rechnungsadresse in D ausgeliefert werden.
Produktdetails
- Produktdetails
- Verlag: Wiley-VCH
- Erscheinungstermin: 20. Oktober 2015
- Deutsch
- ISBN-13: 9783527694723
- Artikelnr.: 44024236
- Verlag: Wiley-VCH
- Erscheinungstermin: 20. Oktober 2015
- Deutsch
- ISBN-13: 9783527694723
- Artikelnr.: 44024236
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
Arnold Willemer ist Programmierer und Administrator mit mehr als zwanzig Jahren Berufserfahrung. Er hat mehrere erfolgreiche Computer-Bücher geschrieben, die sich durch ihre große Verständlichkeit und ihren lockeren Ton auszeichnen.
Vorwort 11
1 Programmieren für Einsteiger 15
1.1 Was tut eigentlich ein Programmierer? 15
1.2 Wie der Computer mit Daten umgeht 19
1.3 Sprachbarrieren zwischen Mensch und Computer 20
2 Annäherung an Python 23
2.1 Beschaffung und Installation 24
2.2 Werkzeug 25
2.2.1 Die Standard-IDE IDLE 26
2.2.2 Direktaufruf von Editor und Interpreter 27
2.3 Gestaltung eines Python-Programms 29
2.4 Kommentare 30
2.5 Die Last mit den Umlauten 31
3 Speicherwerke für Rechenkünstler 33
3.1 Verschiedene Zahlen 34
3.2 Mathematische Ausdrücke 35
3.3 Programmatisches Geschwätz: Zeichenketten 38
3.4 Alles muss raus: print 39
3.5 Futter für die Programme: input 41
3.6 Konvertierung der Variablentypen 42
3.7 Aufgaben 44
4 Ablaufstrukturen 47
4.1 Abfrage if 47
4.2 Der Umgang mit der Wahrheit 50
4.2.1 Vergleich zwischen Zahlen 50
4.2.2 Vergleich von Zeichenketten 52
4.2.3 Boolesche Verknüpfungen 53
4.3 Programmierte Wiederholung: Schleifen 55
4.3.1 Mit der Bedingung im Kopf: while 55
4.3.2 Prüfung der Benutzereingabe 56
4.3.3 Listen durchschleifen: for 60
4.3.4 Schleifenbruch mit break und continue 62
4.3.5 Schleifen können auch anders: else 63
4.4 Das Bermuda-Projekt 63
4.5 Aufgaben 66
5 Funktionen 69
5.1 Rückgabewert und Adresse einer Funktion 70
5.2 Parameter 71
5.2.1 Vorbelegte Parameter 73
5.2.2 Parameter per Namen belegen 74
5.2.3 Variable Anzahl von Parametern 75
5.3 Globale und lokale Variablen 76
5.4 Rekursion: Selbstgespräche einer Funktion 78
5.5 Die anonyme Funktion lambda 81
5.6 Das Bermuda-Projekt 81
5.7 Aufgaben 83
6 Wir bauen die Welt: Klassen 87
6.1 Konstruktor (und Destruktor?) 91
6.2 Privat oder Öffentlich? 92
6.3 Statisch: Ein Attribut für alle Objekte der Klasse 96
6.4 Wenn eine Zuweisung zur Referenz führt 98
6.5 Referenzlos im Abfall 100
6.6 Ein eigener Datencontainer: Der Binärbaum 101
6.6.1 Bäume, Äste und Knoten 102
6.6.2 Einbau einer Besucherfunktion 105
6.7 Selbst gebaute Operatoren 106
6.8 Erweiterte Erbschaftsangelegenheiten 109
6.8.1 Vererbung am Beispiel von Supermans Kiosk 110
6.8.2 Abstrakte Basisklassen 114
6.8.3 Polymorphie? Ein Problem der Anderen 116
6.8.4 Mehrfachvererbung 117
6.9 Das Bermuda-Projekt 119
6.10 Aufgaben 121
7 Ausnahmsweise falsch: Die Exception 125
7.1 Selbst gemachte Exception basteln 128
7.2 Python-Exceptions 131
7.3 Eine Zusicherung: Assert 132
8 Der Umgang mit Texten 133
8.1 Der Umgang mit Zeichenketten und deren Operatoren 133
8.2 Die Sequenz und die rechteckigen Klammern 134
8.3 Die String-Methoden 136
8.4 Textformatierung 139
8.4.1 Zeichenketten mit format ausrichten 140
8.4.2 Formatierung über das Prozentzeichen 141
8.5 Steuerzeichen 142
8.6 Internationales Parkett 143
8.6.1 Internationale Sonderzeichen im Programm 143
8.6.2 Daten umcodieren 144
8.6.3 Die nationale Umgebung 145
8.7 Mustererkennung mit regulären Ausdrücken 149
8.7.1 Die Funktionen für den Vergleich 149
8.7.2 Die wichtigsten Platzhalterzeichen 152
8.7.3 Beispielhafte Suche 152
8.7.4 Verfressene Quantoren 155
8.7.5 Noch ein paar Platzhalter 155
8.8 Das Bermuda-Projekt 156
8.9 Aufgaben 157
9 Kä;;ghaltung für Datenrudel 159
9.1 Schön eng beieinander: Die Sequenz 160
9.2 Heterogene Gemeinsamkeit: Das Tupel 160
9.3 Elementweise veränderbar: Die Liste 165
9.3.1 Listen anlegen und initialisieren 165
9.3.2 Elemente hinzufügen, ändern und löschen 166
9.3.3 Umräumen und sortieren 168
9.4 Dimensionen 169
9.5 Die Reißverschlussfunktion zip 171
9.6 Zugriff per Schlüssel: Das Dictionary 171
9.7 Einzigartig und unordentlich: Die Menge 173
9.8 Das Geheimnis der Container 176
9.9 Das Bermuda-Projekt 178
9.10 Aufgaben 183
10 Gra;;sche Ober;;äche (Tkinter) 187
10.1 Eine kleine Anwendung 189
10.2 Das Programm ist Event-gesteuert 190
10.2.1 Kontrollelemente lösen Ereignisse aus 190
10.2.2 Ereignisse und Reaktionen 192
10.3 Kontrollelemente im Fenster anordnen: Layout 194
10.3.1 Pack alles aufeinander! 194
10.3.2 Hinter Gitter verteilen: Grid 198
10.3.3 Pixelweise positionieren: Place 199
10.4 Kontrollelemente und ihre Optionen 201
10.4.1 Tkinter-Variablen . 203
10.4.2 Label: Aufkleber mit Schriftart 204
10.4.3 Druckknopf: Button 206
10.4.4 Einer unter vielen: Radiobutton 207
10.4.5 Abgehakt: Checkbutton 209
10.4.6 Der Umgang mit der Listbox 210
10.4.7 Ein Scrollbar am Beispiel einer Listbox 212
10.4.8 Die Eingabezeile Entry 214
10.4.9 Texte anzeigen und editieren 217
10.4.10 Schmackhafte Menüs 219
10.5 Eine selbst gebaute Tabelle 222
10.6 Dialogboxen 224
10.6.1 Kurzmeldung: Die Messagebox 224
10.6.2 Datei- und Verzeichnisauswahl 227
10.6.3 Farbselektor 231
10.6.4 Der eigene Dialog: tk_dialog 231
10.7 Das Bermuda-Projekt 233
10.8 Aufgaben 235
11 Kleine Zeichenschule 241
11.1 Canvas erzeugen 241
11.2 Zeichnen im Canvas 242
11.2.1 Linien 243
11.2.2 Rechtecke 244
11.2.3 Polygone 245
11.2.4 Ovale und Kreise 246
11.2.5 Bögen und Tortenstücke 247
11.2.6 Texte in die Gra;;k 250
11.2.7 Bilder und Symbole 251
11.2.8 Die Ereignisse im Canvas 253
11.3 Canvas als Widget-Halter 256
11.4 Das Bermuda-Projekt 257
11.5 Aufgaben 262
12 Gut verschnürt: Module, Pakete und Bibliotheken 265
12.1 Import 265
12.2 Eigene Module 267
12.3 Module testen 269
12.3.1 Das Hauptprogramm als Selbsttest 269
12.3.2 Kommentare testen Funktionen: doctest 270
12.3.3 unittest 272
12.4 Gebündelt zum Paket 274
12.5 Aufgaben 276
13 Naturwissenschaftliches 277
13.1 Mathematik: math 277
13.2 Zufallszahlen: random 280
13.3 Dezimalbrüche: decimal 280
13.4 Lineare Algebra mit NumPy und SciPy 282
13.5 Datumsbibliothek 284
13.5.1 Das Paket datetime 284
13.5.2 Das klassische Modul time 286
13.5.3 Schlafenszeit 288
13.6 Aufgaben 289
14 Dateien 291
14.1 Textdateien 291
14.2 Binärdateien 293
14.3 Zusammenfassung 295
14.4 Exceptions 296
14.5 Strukturierte Variablen sichern: JSON 297
14.6 Packen und Komprimieren: GZIP, ZIP und TAR 298
14.6.1 Eine Datei komprimieren: gzip 299
14.6.2 ZIP-Dateien und TAR-Archive 300
14.7 Aufgaben 302
15 Python und Datenbanken 305
15.1 Nichts als Tabellen 306
15.2 Verbindungsaufbau 309
15.2.1 Eine kleine, lokale Datenbank namens SQLite 309
15.2.2 Die allgegenwärtige Datenbank MySQL 310
15.2.3 Wenn es etwas mehr sein soll: PostgreSQL 312
15.3 Tabellen erstellen: CREATE 313
15.4 Variationen von INSERT 315
15.5 Änderungen mit UPDATE 316
15.6 Löschen mit DELETE 316
15.7 Ergebnisermittlung durch SELECT 317
16 Umgang mit XML-Dateien 319
16.1 Eine Speisekarte als XML-Datei 321
16.2 XML-Dateien mit ElementTree bearbeiten 322
16.3 Der XML-Klassiker DOM 326
16.4 Schrittweise durch die XML-Datei: SAX 329
16.5 Aufgaben 331
17 Netzwerk: Socket, E-Mail und WWW 335
17.1 Der Griff in die Steckdose: Sockets 335
17.2 Versenden von Mails: SMTP 339
17.3 Auslesen von Mails per POP3 343
17.4 Griff ins WWW 347
18 Parallelverarbeitung mit Threads 349
18.1 Das machen wir im Schlaf 350
18.2 Glockengeläut im Threading 350
18.2.1 Die Vereinzelungsanlage 352
18.2.2 Warten auf den Startschuss 354
18.2.3 Ein kleiner Wecker 355
18.3 Die alte Bibliothek thread 356
19 Zusammenarbeit mit dem Betriebssystem 359
19.1 Die Aufrufparameter des Programms 359
19.2 Umgebungsvariablen 360
19.3 Aufruf anderer Programme 361
19.4 Umgang mit dem Dateisystem 363
19.5 Das Ende des Programms 364
Programmentwicklung und Werkzeuge 367
A Fehler sind auch nur Menschen: Der Debugger 367
B Eclipse mit PyDev 368
C Richtig distribuieren: Das eigene Setup 372
Stichwortverzeichnis 377
1 Programmieren für Einsteiger 15
1.1 Was tut eigentlich ein Programmierer? 15
1.2 Wie der Computer mit Daten umgeht 19
1.3 Sprachbarrieren zwischen Mensch und Computer 20
2 Annäherung an Python 23
2.1 Beschaffung und Installation 24
2.2 Werkzeug 25
2.2.1 Die Standard-IDE IDLE 26
2.2.2 Direktaufruf von Editor und Interpreter 27
2.3 Gestaltung eines Python-Programms 29
2.4 Kommentare 30
2.5 Die Last mit den Umlauten 31
3 Speicherwerke für Rechenkünstler 33
3.1 Verschiedene Zahlen 34
3.2 Mathematische Ausdrücke 35
3.3 Programmatisches Geschwätz: Zeichenketten 38
3.4 Alles muss raus: print 39
3.5 Futter für die Programme: input 41
3.6 Konvertierung der Variablentypen 42
3.7 Aufgaben 44
4 Ablaufstrukturen 47
4.1 Abfrage if 47
4.2 Der Umgang mit der Wahrheit 50
4.2.1 Vergleich zwischen Zahlen 50
4.2.2 Vergleich von Zeichenketten 52
4.2.3 Boolesche Verknüpfungen 53
4.3 Programmierte Wiederholung: Schleifen 55
4.3.1 Mit der Bedingung im Kopf: while 55
4.3.2 Prüfung der Benutzereingabe 56
4.3.3 Listen durchschleifen: for 60
4.3.4 Schleifenbruch mit break und continue 62
4.3.5 Schleifen können auch anders: else 63
4.4 Das Bermuda-Projekt 63
4.5 Aufgaben 66
5 Funktionen 69
5.1 Rückgabewert und Adresse einer Funktion 70
5.2 Parameter 71
5.2.1 Vorbelegte Parameter 73
5.2.2 Parameter per Namen belegen 74
5.2.3 Variable Anzahl von Parametern 75
5.3 Globale und lokale Variablen 76
5.4 Rekursion: Selbstgespräche einer Funktion 78
5.5 Die anonyme Funktion lambda 81
5.6 Das Bermuda-Projekt 81
5.7 Aufgaben 83
6 Wir bauen die Welt: Klassen 87
6.1 Konstruktor (und Destruktor?) 91
6.2 Privat oder Öffentlich? 92
6.3 Statisch: Ein Attribut für alle Objekte der Klasse 96
6.4 Wenn eine Zuweisung zur Referenz führt 98
6.5 Referenzlos im Abfall 100
6.6 Ein eigener Datencontainer: Der Binärbaum 101
6.6.1 Bäume, Äste und Knoten 102
6.6.2 Einbau einer Besucherfunktion 105
6.7 Selbst gebaute Operatoren 106
6.8 Erweiterte Erbschaftsangelegenheiten 109
6.8.1 Vererbung am Beispiel von Supermans Kiosk 110
6.8.2 Abstrakte Basisklassen 114
6.8.3 Polymorphie? Ein Problem der Anderen 116
6.8.4 Mehrfachvererbung 117
6.9 Das Bermuda-Projekt 119
6.10 Aufgaben 121
7 Ausnahmsweise falsch: Die Exception 125
7.1 Selbst gemachte Exception basteln 128
7.2 Python-Exceptions 131
7.3 Eine Zusicherung: Assert 132
8 Der Umgang mit Texten 133
8.1 Der Umgang mit Zeichenketten und deren Operatoren 133
8.2 Die Sequenz und die rechteckigen Klammern 134
8.3 Die String-Methoden 136
8.4 Textformatierung 139
8.4.1 Zeichenketten mit format ausrichten 140
8.4.2 Formatierung über das Prozentzeichen 141
8.5 Steuerzeichen 142
8.6 Internationales Parkett 143
8.6.1 Internationale Sonderzeichen im Programm 143
8.6.2 Daten umcodieren 144
8.6.3 Die nationale Umgebung 145
8.7 Mustererkennung mit regulären Ausdrücken 149
8.7.1 Die Funktionen für den Vergleich 149
8.7.2 Die wichtigsten Platzhalterzeichen 152
8.7.3 Beispielhafte Suche 152
8.7.4 Verfressene Quantoren 155
8.7.5 Noch ein paar Platzhalter 155
8.8 Das Bermuda-Projekt 156
8.9 Aufgaben 157
9 Kä;;ghaltung für Datenrudel 159
9.1 Schön eng beieinander: Die Sequenz 160
9.2 Heterogene Gemeinsamkeit: Das Tupel 160
9.3 Elementweise veränderbar: Die Liste 165
9.3.1 Listen anlegen und initialisieren 165
9.3.2 Elemente hinzufügen, ändern und löschen 166
9.3.3 Umräumen und sortieren 168
9.4 Dimensionen 169
9.5 Die Reißverschlussfunktion zip 171
9.6 Zugriff per Schlüssel: Das Dictionary 171
9.7 Einzigartig und unordentlich: Die Menge 173
9.8 Das Geheimnis der Container 176
9.9 Das Bermuda-Projekt 178
9.10 Aufgaben 183
10 Gra;;sche Ober;;äche (Tkinter) 187
10.1 Eine kleine Anwendung 189
10.2 Das Programm ist Event-gesteuert 190
10.2.1 Kontrollelemente lösen Ereignisse aus 190
10.2.2 Ereignisse und Reaktionen 192
10.3 Kontrollelemente im Fenster anordnen: Layout 194
10.3.1 Pack alles aufeinander! 194
10.3.2 Hinter Gitter verteilen: Grid 198
10.3.3 Pixelweise positionieren: Place 199
10.4 Kontrollelemente und ihre Optionen 201
10.4.1 Tkinter-Variablen . 203
10.4.2 Label: Aufkleber mit Schriftart 204
10.4.3 Druckknopf: Button 206
10.4.4 Einer unter vielen: Radiobutton 207
10.4.5 Abgehakt: Checkbutton 209
10.4.6 Der Umgang mit der Listbox 210
10.4.7 Ein Scrollbar am Beispiel einer Listbox 212
10.4.8 Die Eingabezeile Entry 214
10.4.9 Texte anzeigen und editieren 217
10.4.10 Schmackhafte Menüs 219
10.5 Eine selbst gebaute Tabelle 222
10.6 Dialogboxen 224
10.6.1 Kurzmeldung: Die Messagebox 224
10.6.2 Datei- und Verzeichnisauswahl 227
10.6.3 Farbselektor 231
10.6.4 Der eigene Dialog: tk_dialog 231
10.7 Das Bermuda-Projekt 233
10.8 Aufgaben 235
11 Kleine Zeichenschule 241
11.1 Canvas erzeugen 241
11.2 Zeichnen im Canvas 242
11.2.1 Linien 243
11.2.2 Rechtecke 244
11.2.3 Polygone 245
11.2.4 Ovale und Kreise 246
11.2.5 Bögen und Tortenstücke 247
11.2.6 Texte in die Gra;;k 250
11.2.7 Bilder und Symbole 251
11.2.8 Die Ereignisse im Canvas 253
11.3 Canvas als Widget-Halter 256
11.4 Das Bermuda-Projekt 257
11.5 Aufgaben 262
12 Gut verschnürt: Module, Pakete und Bibliotheken 265
12.1 Import 265
12.2 Eigene Module 267
12.3 Module testen 269
12.3.1 Das Hauptprogramm als Selbsttest 269
12.3.2 Kommentare testen Funktionen: doctest 270
12.3.3 unittest 272
12.4 Gebündelt zum Paket 274
12.5 Aufgaben 276
13 Naturwissenschaftliches 277
13.1 Mathematik: math 277
13.2 Zufallszahlen: random 280
13.3 Dezimalbrüche: decimal 280
13.4 Lineare Algebra mit NumPy und SciPy 282
13.5 Datumsbibliothek 284
13.5.1 Das Paket datetime 284
13.5.2 Das klassische Modul time 286
13.5.3 Schlafenszeit 288
13.6 Aufgaben 289
14 Dateien 291
14.1 Textdateien 291
14.2 Binärdateien 293
14.3 Zusammenfassung 295
14.4 Exceptions 296
14.5 Strukturierte Variablen sichern: JSON 297
14.6 Packen und Komprimieren: GZIP, ZIP und TAR 298
14.6.1 Eine Datei komprimieren: gzip 299
14.6.2 ZIP-Dateien und TAR-Archive 300
14.7 Aufgaben 302
15 Python und Datenbanken 305
15.1 Nichts als Tabellen 306
15.2 Verbindungsaufbau 309
15.2.1 Eine kleine, lokale Datenbank namens SQLite 309
15.2.2 Die allgegenwärtige Datenbank MySQL 310
15.2.3 Wenn es etwas mehr sein soll: PostgreSQL 312
15.3 Tabellen erstellen: CREATE 313
15.4 Variationen von INSERT 315
15.5 Änderungen mit UPDATE 316
15.6 Löschen mit DELETE 316
15.7 Ergebnisermittlung durch SELECT 317
16 Umgang mit XML-Dateien 319
16.1 Eine Speisekarte als XML-Datei 321
16.2 XML-Dateien mit ElementTree bearbeiten 322
16.3 Der XML-Klassiker DOM 326
16.4 Schrittweise durch die XML-Datei: SAX 329
16.5 Aufgaben 331
17 Netzwerk: Socket, E-Mail und WWW 335
17.1 Der Griff in die Steckdose: Sockets 335
17.2 Versenden von Mails: SMTP 339
17.3 Auslesen von Mails per POP3 343
17.4 Griff ins WWW 347
18 Parallelverarbeitung mit Threads 349
18.1 Das machen wir im Schlaf 350
18.2 Glockengeläut im Threading 350
18.2.1 Die Vereinzelungsanlage 352
18.2.2 Warten auf den Startschuss 354
18.2.3 Ein kleiner Wecker 355
18.3 Die alte Bibliothek thread 356
19 Zusammenarbeit mit dem Betriebssystem 359
19.1 Die Aufrufparameter des Programms 359
19.2 Umgebungsvariablen 360
19.3 Aufruf anderer Programme 361
19.4 Umgang mit dem Dateisystem 363
19.5 Das Ende des Programms 364
Programmentwicklung und Werkzeuge 367
A Fehler sind auch nur Menschen: Der Debugger 367
B Eclipse mit PyDev 368
C Richtig distribuieren: Das eigene Setup 372
Stichwortverzeichnis 377
Vorwort 11
1 Programmieren für Einsteiger 15
1.1 Was tut eigentlich ein Programmierer? 15
1.2 Wie der Computer mit Daten umgeht 19
1.3 Sprachbarrieren zwischen Mensch und Computer 20
2 Annäherung an Python 23
2.1 Beschaffung und Installation 24
2.2 Werkzeug 25
2.2.1 Die Standard-IDE IDLE 26
2.2.2 Direktaufruf von Editor und Interpreter 27
2.3 Gestaltung eines Python-Programms 29
2.4 Kommentare 30
2.5 Die Last mit den Umlauten 31
3 Speicherwerke für Rechenkünstler 33
3.1 Verschiedene Zahlen 34
3.2 Mathematische Ausdrücke 35
3.3 Programmatisches Geschwätz: Zeichenketten 38
3.4 Alles muss raus: print 39
3.5 Futter für die Programme: input 41
3.6 Konvertierung der Variablentypen 42
3.7 Aufgaben 44
4 Ablaufstrukturen 47
4.1 Abfrage if 47
4.2 Der Umgang mit der Wahrheit 50
4.2.1 Vergleich zwischen Zahlen 50
4.2.2 Vergleich von Zeichenketten 52
4.2.3 Boolesche Verknüpfungen 53
4.3 Programmierte Wiederholung: Schleifen 55
4.3.1 Mit der Bedingung im Kopf: while 55
4.3.2 Prüfung der Benutzereingabe 56
4.3.3 Listen durchschleifen: for 60
4.3.4 Schleifenbruch mit break und continue 62
4.3.5 Schleifen können auch anders: else 63
4.4 Das Bermuda-Projekt 63
4.5 Aufgaben 66
5 Funktionen 69
5.1 Rückgabewert und Adresse einer Funktion 70
5.2 Parameter 71
5.2.1 Vorbelegte Parameter 73
5.2.2 Parameter per Namen belegen 74
5.2.3 Variable Anzahl von Parametern 75
5.3 Globale und lokale Variablen 76
5.4 Rekursion: Selbstgespräche einer Funktion 78
5.5 Die anonyme Funktion lambda 81
5.6 Das Bermuda-Projekt 81
5.7 Aufgaben 83
6 Wir bauen die Welt: Klassen 87
6.1 Konstruktor (und Destruktor?) 91
6.2 Privat oder Öffentlich? 92
6.3 Statisch: Ein Attribut für alle Objekte der Klasse 96
6.4 Wenn eine Zuweisung zur Referenz führt 98
6.5 Referenzlos im Abfall 100
6.6 Ein eigener Datencontainer: Der Binärbaum 101
6.6.1 Bäume, Äste und Knoten 102
6.6.2 Einbau einer Besucherfunktion 105
6.7 Selbst gebaute Operatoren 106
6.8 Erweiterte Erbschaftsangelegenheiten 109
6.8.1 Vererbung am Beispiel von Supermans Kiosk 110
6.8.2 Abstrakte Basisklassen 114
6.8.3 Polymorphie? Ein Problem der Anderen 116
6.8.4 Mehrfachvererbung 117
6.9 Das Bermuda-Projekt 119
6.10 Aufgaben 121
7 Ausnahmsweise falsch: Die Exception 125
7.1 Selbst gemachte Exception basteln 128
7.2 Python-Exceptions 131
7.3 Eine Zusicherung: Assert 132
8 Der Umgang mit Texten 133
8.1 Der Umgang mit Zeichenketten und deren Operatoren 133
8.2 Die Sequenz und die rechteckigen Klammern 134
8.3 Die String-Methoden 136
8.4 Textformatierung 139
8.4.1 Zeichenketten mit format ausrichten 140
8.4.2 Formatierung über das Prozentzeichen 141
8.5 Steuerzeichen 142
8.6 Internationales Parkett 143
8.6.1 Internationale Sonderzeichen im Programm 143
8.6.2 Daten umcodieren 144
8.6.3 Die nationale Umgebung 145
8.7 Mustererkennung mit regulären Ausdrücken 149
8.7.1 Die Funktionen für den Vergleich 149
8.7.2 Die wichtigsten Platzhalterzeichen 152
8.7.3 Beispielhafte Suche 152
8.7.4 Verfressene Quantoren 155
8.7.5 Noch ein paar Platzhalter 155
8.8 Das Bermuda-Projekt 156
8.9 Aufgaben 157
9 Kä;;ghaltung für Datenrudel 159
9.1 Schön eng beieinander: Die Sequenz 160
9.2 Heterogene Gemeinsamkeit: Das Tupel 160
9.3 Elementweise veränderbar: Die Liste 165
9.3.1 Listen anlegen und initialisieren 165
9.3.2 Elemente hinzufügen, ändern und löschen 166
9.3.3 Umräumen und sortieren 168
9.4 Dimensionen 169
9.5 Die Reißverschlussfunktion zip 171
9.6 Zugriff per Schlüssel: Das Dictionary 171
9.7 Einzigartig und unordentlich: Die Menge 173
9.8 Das Geheimnis der Container 176
9.9 Das Bermuda-Projekt 178
9.10 Aufgaben 183
10 Gra;;sche Ober;;äche (Tkinter) 187
10.1 Eine kleine Anwendung 189
10.2 Das Programm ist Event-gesteuert 190
10.2.1 Kontrollelemente lösen Ereignisse aus 190
10.2.2 Ereignisse und Reaktionen 192
10.3 Kontrollelemente im Fenster anordnen: Layout 194
10.3.1 Pack alles aufeinander! 194
10.3.2 Hinter Gitter verteilen: Grid 198
10.3.3 Pixelweise positionieren: Place 199
10.4 Kontrollelemente und ihre Optionen 201
10.4.1 Tkinter-Variablen . 203
10.4.2 Label: Aufkleber mit Schriftart 204
10.4.3 Druckknopf: Button 206
10.4.4 Einer unter vielen: Radiobutton 207
10.4.5 Abgehakt: Checkbutton 209
10.4.6 Der Umgang mit der Listbox 210
10.4.7 Ein Scrollbar am Beispiel einer Listbox 212
10.4.8 Die Eingabezeile Entry 214
10.4.9 Texte anzeigen und editieren 217
10.4.10 Schmackhafte Menüs 219
10.5 Eine selbst gebaute Tabelle 222
10.6 Dialogboxen 224
10.6.1 Kurzmeldung: Die Messagebox 224
10.6.2 Datei- und Verzeichnisauswahl 227
10.6.3 Farbselektor 231
10.6.4 Der eigene Dialog: tk_dialog 231
10.7 Das Bermuda-Projekt 233
10.8 Aufgaben 235
11 Kleine Zeichenschule 241
11.1 Canvas erzeugen 241
11.2 Zeichnen im Canvas 242
11.2.1 Linien 243
11.2.2 Rechtecke 244
11.2.3 Polygone 245
11.2.4 Ovale und Kreise 246
11.2.5 Bögen und Tortenstücke 247
11.2.6 Texte in die Gra;;k 250
11.2.7 Bilder und Symbole 251
11.2.8 Die Ereignisse im Canvas 253
11.3 Canvas als Widget-Halter 256
11.4 Das Bermuda-Projekt 257
11.5 Aufgaben 262
12 Gut verschnürt: Module, Pakete und Bibliotheken 265
12.1 Import 265
12.2 Eigene Module 267
12.3 Module testen 269
12.3.1 Das Hauptprogramm als Selbsttest 269
12.3.2 Kommentare testen Funktionen: doctest 270
12.3.3 unittest 272
12.4 Gebündelt zum Paket 274
12.5 Aufgaben 276
13 Naturwissenschaftliches 277
13.1 Mathematik: math 277
13.2 Zufallszahlen: random 280
13.3 Dezimalbrüche: decimal 280
13.4 Lineare Algebra mit NumPy und SciPy 282
13.5 Datumsbibliothek 284
13.5.1 Das Paket datetime 284
13.5.2 Das klassische Modul time 286
13.5.3 Schlafenszeit 288
13.6 Aufgaben 289
14 Dateien 291
14.1 Textdateien 291
14.2 Binärdateien 293
14.3 Zusammenfassung 295
14.4 Exceptions 296
14.5 Strukturierte Variablen sichern: JSON 297
14.6 Packen und Komprimieren: GZIP, ZIP und TAR 298
14.6.1 Eine Datei komprimieren: gzip 299
14.6.2 ZIP-Dateien und TAR-Archive 300
14.7 Aufgaben 302
15 Python und Datenbanken 305
15.1 Nichts als Tabellen 306
15.2 Verbindungsaufbau 309
15.2.1 Eine kleine, lokale Datenbank namens SQLite 309
15.2.2 Die allgegenwärtige Datenbank MySQL 310
15.2.3 Wenn es etwas mehr sein soll: PostgreSQL 312
15.3 Tabellen erstellen: CREATE 313
15.4 Variationen von INSERT 315
15.5 Änderungen mit UPDATE 316
15.6 Löschen mit DELETE 316
15.7 Ergebnisermittlung durch SELECT 317
16 Umgang mit XML-Dateien 319
16.1 Eine Speisekarte als XML-Datei 321
16.2 XML-Dateien mit ElementTree bearbeiten 322
16.3 Der XML-Klassiker DOM 326
16.4 Schrittweise durch die XML-Datei: SAX 329
16.5 Aufgaben 331
17 Netzwerk: Socket, E-Mail und WWW 335
17.1 Der Griff in die Steckdose: Sockets 335
17.2 Versenden von Mails: SMTP 339
17.3 Auslesen von Mails per POP3 343
17.4 Griff ins WWW 347
18 Parallelverarbeitung mit Threads 349
18.1 Das machen wir im Schlaf 350
18.2 Glockengeläut im Threading 350
18.2.1 Die Vereinzelungsanlage 352
18.2.2 Warten auf den Startschuss 354
18.2.3 Ein kleiner Wecker 355
18.3 Die alte Bibliothek thread 356
19 Zusammenarbeit mit dem Betriebssystem 359
19.1 Die Aufrufparameter des Programms 359
19.2 Umgebungsvariablen 360
19.3 Aufruf anderer Programme 361
19.4 Umgang mit dem Dateisystem 363
19.5 Das Ende des Programms 364
Programmentwicklung und Werkzeuge 367
A Fehler sind auch nur Menschen: Der Debugger 367
B Eclipse mit PyDev 368
C Richtig distribuieren: Das eigene Setup 372
Stichwortverzeichnis 377
1 Programmieren für Einsteiger 15
1.1 Was tut eigentlich ein Programmierer? 15
1.2 Wie der Computer mit Daten umgeht 19
1.3 Sprachbarrieren zwischen Mensch und Computer 20
2 Annäherung an Python 23
2.1 Beschaffung und Installation 24
2.2 Werkzeug 25
2.2.1 Die Standard-IDE IDLE 26
2.2.2 Direktaufruf von Editor und Interpreter 27
2.3 Gestaltung eines Python-Programms 29
2.4 Kommentare 30
2.5 Die Last mit den Umlauten 31
3 Speicherwerke für Rechenkünstler 33
3.1 Verschiedene Zahlen 34
3.2 Mathematische Ausdrücke 35
3.3 Programmatisches Geschwätz: Zeichenketten 38
3.4 Alles muss raus: print 39
3.5 Futter für die Programme: input 41
3.6 Konvertierung der Variablentypen 42
3.7 Aufgaben 44
4 Ablaufstrukturen 47
4.1 Abfrage if 47
4.2 Der Umgang mit der Wahrheit 50
4.2.1 Vergleich zwischen Zahlen 50
4.2.2 Vergleich von Zeichenketten 52
4.2.3 Boolesche Verknüpfungen 53
4.3 Programmierte Wiederholung: Schleifen 55
4.3.1 Mit der Bedingung im Kopf: while 55
4.3.2 Prüfung der Benutzereingabe 56
4.3.3 Listen durchschleifen: for 60
4.3.4 Schleifenbruch mit break und continue 62
4.3.5 Schleifen können auch anders: else 63
4.4 Das Bermuda-Projekt 63
4.5 Aufgaben 66
5 Funktionen 69
5.1 Rückgabewert und Adresse einer Funktion 70
5.2 Parameter 71
5.2.1 Vorbelegte Parameter 73
5.2.2 Parameter per Namen belegen 74
5.2.3 Variable Anzahl von Parametern 75
5.3 Globale und lokale Variablen 76
5.4 Rekursion: Selbstgespräche einer Funktion 78
5.5 Die anonyme Funktion lambda 81
5.6 Das Bermuda-Projekt 81
5.7 Aufgaben 83
6 Wir bauen die Welt: Klassen 87
6.1 Konstruktor (und Destruktor?) 91
6.2 Privat oder Öffentlich? 92
6.3 Statisch: Ein Attribut für alle Objekte der Klasse 96
6.4 Wenn eine Zuweisung zur Referenz führt 98
6.5 Referenzlos im Abfall 100
6.6 Ein eigener Datencontainer: Der Binärbaum 101
6.6.1 Bäume, Äste und Knoten 102
6.6.2 Einbau einer Besucherfunktion 105
6.7 Selbst gebaute Operatoren 106
6.8 Erweiterte Erbschaftsangelegenheiten 109
6.8.1 Vererbung am Beispiel von Supermans Kiosk 110
6.8.2 Abstrakte Basisklassen 114
6.8.3 Polymorphie? Ein Problem der Anderen 116
6.8.4 Mehrfachvererbung 117
6.9 Das Bermuda-Projekt 119
6.10 Aufgaben 121
7 Ausnahmsweise falsch: Die Exception 125
7.1 Selbst gemachte Exception basteln 128
7.2 Python-Exceptions 131
7.3 Eine Zusicherung: Assert 132
8 Der Umgang mit Texten 133
8.1 Der Umgang mit Zeichenketten und deren Operatoren 133
8.2 Die Sequenz und die rechteckigen Klammern 134
8.3 Die String-Methoden 136
8.4 Textformatierung 139
8.4.1 Zeichenketten mit format ausrichten 140
8.4.2 Formatierung über das Prozentzeichen 141
8.5 Steuerzeichen 142
8.6 Internationales Parkett 143
8.6.1 Internationale Sonderzeichen im Programm 143
8.6.2 Daten umcodieren 144
8.6.3 Die nationale Umgebung 145
8.7 Mustererkennung mit regulären Ausdrücken 149
8.7.1 Die Funktionen für den Vergleich 149
8.7.2 Die wichtigsten Platzhalterzeichen 152
8.7.3 Beispielhafte Suche 152
8.7.4 Verfressene Quantoren 155
8.7.5 Noch ein paar Platzhalter 155
8.8 Das Bermuda-Projekt 156
8.9 Aufgaben 157
9 Kä;;ghaltung für Datenrudel 159
9.1 Schön eng beieinander: Die Sequenz 160
9.2 Heterogene Gemeinsamkeit: Das Tupel 160
9.3 Elementweise veränderbar: Die Liste 165
9.3.1 Listen anlegen und initialisieren 165
9.3.2 Elemente hinzufügen, ändern und löschen 166
9.3.3 Umräumen und sortieren 168
9.4 Dimensionen 169
9.5 Die Reißverschlussfunktion zip 171
9.6 Zugriff per Schlüssel: Das Dictionary 171
9.7 Einzigartig und unordentlich: Die Menge 173
9.8 Das Geheimnis der Container 176
9.9 Das Bermuda-Projekt 178
9.10 Aufgaben 183
10 Gra;;sche Ober;;äche (Tkinter) 187
10.1 Eine kleine Anwendung 189
10.2 Das Programm ist Event-gesteuert 190
10.2.1 Kontrollelemente lösen Ereignisse aus 190
10.2.2 Ereignisse und Reaktionen 192
10.3 Kontrollelemente im Fenster anordnen: Layout 194
10.3.1 Pack alles aufeinander! 194
10.3.2 Hinter Gitter verteilen: Grid 198
10.3.3 Pixelweise positionieren: Place 199
10.4 Kontrollelemente und ihre Optionen 201
10.4.1 Tkinter-Variablen . 203
10.4.2 Label: Aufkleber mit Schriftart 204
10.4.3 Druckknopf: Button 206
10.4.4 Einer unter vielen: Radiobutton 207
10.4.5 Abgehakt: Checkbutton 209
10.4.6 Der Umgang mit der Listbox 210
10.4.7 Ein Scrollbar am Beispiel einer Listbox 212
10.4.8 Die Eingabezeile Entry 214
10.4.9 Texte anzeigen und editieren 217
10.4.10 Schmackhafte Menüs 219
10.5 Eine selbst gebaute Tabelle 222
10.6 Dialogboxen 224
10.6.1 Kurzmeldung: Die Messagebox 224
10.6.2 Datei- und Verzeichnisauswahl 227
10.6.3 Farbselektor 231
10.6.4 Der eigene Dialog: tk_dialog 231
10.7 Das Bermuda-Projekt 233
10.8 Aufgaben 235
11 Kleine Zeichenschule 241
11.1 Canvas erzeugen 241
11.2 Zeichnen im Canvas 242
11.2.1 Linien 243
11.2.2 Rechtecke 244
11.2.3 Polygone 245
11.2.4 Ovale und Kreise 246
11.2.5 Bögen und Tortenstücke 247
11.2.6 Texte in die Gra;;k 250
11.2.7 Bilder und Symbole 251
11.2.8 Die Ereignisse im Canvas 253
11.3 Canvas als Widget-Halter 256
11.4 Das Bermuda-Projekt 257
11.5 Aufgaben 262
12 Gut verschnürt: Module, Pakete und Bibliotheken 265
12.1 Import 265
12.2 Eigene Module 267
12.3 Module testen 269
12.3.1 Das Hauptprogramm als Selbsttest 269
12.3.2 Kommentare testen Funktionen: doctest 270
12.3.3 unittest 272
12.4 Gebündelt zum Paket 274
12.5 Aufgaben 276
13 Naturwissenschaftliches 277
13.1 Mathematik: math 277
13.2 Zufallszahlen: random 280
13.3 Dezimalbrüche: decimal 280
13.4 Lineare Algebra mit NumPy und SciPy 282
13.5 Datumsbibliothek 284
13.5.1 Das Paket datetime 284
13.5.2 Das klassische Modul time 286
13.5.3 Schlafenszeit 288
13.6 Aufgaben 289
14 Dateien 291
14.1 Textdateien 291
14.2 Binärdateien 293
14.3 Zusammenfassung 295
14.4 Exceptions 296
14.5 Strukturierte Variablen sichern: JSON 297
14.6 Packen und Komprimieren: GZIP, ZIP und TAR 298
14.6.1 Eine Datei komprimieren: gzip 299
14.6.2 ZIP-Dateien und TAR-Archive 300
14.7 Aufgaben 302
15 Python und Datenbanken 305
15.1 Nichts als Tabellen 306
15.2 Verbindungsaufbau 309
15.2.1 Eine kleine, lokale Datenbank namens SQLite 309
15.2.2 Die allgegenwärtige Datenbank MySQL 310
15.2.3 Wenn es etwas mehr sein soll: PostgreSQL 312
15.3 Tabellen erstellen: CREATE 313
15.4 Variationen von INSERT 315
15.5 Änderungen mit UPDATE 316
15.6 Löschen mit DELETE 316
15.7 Ergebnisermittlung durch SELECT 317
16 Umgang mit XML-Dateien 319
16.1 Eine Speisekarte als XML-Datei 321
16.2 XML-Dateien mit ElementTree bearbeiten 322
16.3 Der XML-Klassiker DOM 326
16.4 Schrittweise durch die XML-Datei: SAX 329
16.5 Aufgaben 331
17 Netzwerk: Socket, E-Mail und WWW 335
17.1 Der Griff in die Steckdose: Sockets 335
17.2 Versenden von Mails: SMTP 339
17.3 Auslesen von Mails per POP3 343
17.4 Griff ins WWW 347
18 Parallelverarbeitung mit Threads 349
18.1 Das machen wir im Schlaf 350
18.2 Glockengeläut im Threading 350
18.2.1 Die Vereinzelungsanlage 352
18.2.2 Warten auf den Startschuss 354
18.2.3 Ein kleiner Wecker 355
18.3 Die alte Bibliothek thread 356
19 Zusammenarbeit mit dem Betriebssystem 359
19.1 Die Aufrufparameter des Programms 359
19.2 Umgebungsvariablen 360
19.3 Aufruf anderer Programme 361
19.4 Umgang mit dem Dateisystem 363
19.5 Das Ende des Programms 364
Programmentwicklung und Werkzeuge 367
A Fehler sind auch nur Menschen: Der Debugger 367
B Eclipse mit PyDev 368
C Richtig distribuieren: Das eigene Setup 372
Stichwortverzeichnis 377