Einführung in Python

Werbung
an
.
ge n 2
fla tho
Au Py
2. d e l t
h
Be
Moderne OO-Programmierung
5
Einführung in
Python
Mark Lutz & David Ascher
O’REILLY
Deutsche Bearbeitung und Aktualisierung
von Dinu C. Gherman
First
Inhalt
Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teil I
1
2
3
Max.
Linie
XV
Einleitung
Fragen und Antworten zu Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Warum Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ist Python eine Skriptsprache? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wo ist der Haken? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wer benutzt heute Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Was kann ich mit Python machen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Welche technischen Stärken hat Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Python verglichen mit anderen Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
6
7
8
8
12
15
Programmausführung durch Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Einführung in den Python-Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programmausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Varianten des Ausführungsmodells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
19
22
Wie man Python-Programme ausführt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
Interaktives Codieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System-Kommandozeilen und Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows-Datei-Icons anklicken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module importieren und neu laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die Entwicklungsumgebung IDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Weitere IDEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
33
37
41
45
49
Inhalt
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
| VII
Max.
Linie
Links
Eingebettete Aufrufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Eingefrorene ausführbare Binärdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Startmöglichkeiten im Texteditor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Weitere Startoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die Qual der Wahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Übungen zu Teil I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
51
52
52
52
52
Teil II Typen und Operationen
4
5
Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
Python-Programmstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Warum eingebaute Typen benutzen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Python-Ausdrucksoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zahlen in Aktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Intermezzo: Dynamische Typisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
57
59
62
65
73
Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
String-Literale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Strings in Aktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
String-Formatierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
String-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Generische Typenkategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6
7
Listen und Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Listen in Aktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dictionaries in Aktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tupel, Dateien und alles andere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Tupel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Typenkategorien, die Zweite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Allgemeinheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verweise und Kopien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boolesche Wahrheitswerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Max.
Linie
VIII
104
104
106
111
112
| Inhalt
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
120
123
124
126
126
128
130
Max.
Linie
Rechts
Vergleiche und Gleichheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Typenhierarchien in Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Weitere Typen in Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallen bei eingebauten Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Übungen zu Teil II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131
133
135
135
137
Teil III Anweisungen und Syntax
8
Zuweisungen, Ausdrücke und Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Zuweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Print-Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
9
if-Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
if-Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Python-Syntaxregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Wahrheitstests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
10 while und for-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
while-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
break, continue, pass und das Schleifen-else . . . . . . . . . . . . . . . . . . . . . . . . . . .
for-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schleifenvarianten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
167
169
172
178
11 Python-Code dokumentieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Das Python-Dokumentationsintermezzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Häufige Fallen beim Codieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Übungaufgaben zu Teil III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Teil IV Funktionen
12 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Max.
Linie
Weshalb Funktionen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Codierung von Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ein erstes Beispiel: Definitionen und Aufrufe . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ein zweites Beispiel: Schnittmenge von Sequenzen . . . . . . . . . . . . . . . . . . . . . .
203
204
207
209
Inhalt
| IX
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Links
13 Gültigkeitsbereiche und Argumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Gültigkeitsregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die global-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gültigkeitsbereiche und verschachtelte Funktionen . . . . . . . . . . . . . . . . . . . . . .
Argumentübergabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spezielle Arten des Argumentabgleichs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
212
218
219
222
225
14 Funktionen für Fortgeschrittene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Anonyme Funktionen: lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funktionen auf Argumente anwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funktionen auf Sequenzen anwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Werkzeuge bei der funktionalen Programmierung . . . . . . . . . . . . . . . . . . . . . . .
Partielle Anwendung von Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
List Comprehensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dekoratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generatoren und Iteratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Konzepte beim Entwurf von Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallen bei Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Übungsaufgaben zu Teil IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
235
239
242
243
244
245
249
251
255
258
262
Teil V Module
15 Module: Ein Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Warum Module? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Architektur von Python-Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Funktionsweise eines Imports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
16 Grundlagen der Modulerzeugung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Erzeugung von Modulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Benutzung von Modulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modulnamensräume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nachladen von Modulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
278
279
283
288
17 Modul-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Beispiele für Paket-Importe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wozu Paket-Importe? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Eine Geschichte von drei Systemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Max.
Linie
X
| Inhalt
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
292
295
297
298
Max.
Linie
Rechts
18 Weiterführende Modul-Themen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Datenkapselung in Modulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zukünftige Sprachmerkmale aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gemischte Verwendungsmodi: _ _name_ _ und _ _main_ _ . . . . . . . . . . . . . . .
Modulsuchpfad ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die Import-Erweiterung »as« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Konzepte des Modulentwurfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallstricke bei Modulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Übungsaufgaben zu Teil V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
301
302
303
304
304
305
308
315
Teil VI Klassen und OOP
19 Objektorientierung in Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Warum Klassen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
OOP aus 10.000 Meter Höhe betrachtet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
20 Grundlagen von Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Klassen erzeugen mehrere Instanz-Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Klassen werden durch Vererbung spezialisiert . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Klassen können Python-Operatoren abfangen . . . . . . . . . . . . . . . . . . . . . . . . . . 337
21 Details der Klassenkodierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Die class-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Operatorenüberladung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Namensräume: Die ganze Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
341
344
347
351
362
22 Design mit Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Max.
Linie
Python und OOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Klassen als Datensätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OOP und Vererbung: »ist-ein« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OOP und Komposition: »hat-ein« . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OOP und Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mehrfach-Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Klassen sind Objekte: Generische Objektfabriken . . . . . . . . . . . . . . . . . . . . . . .
Methoden sind Objekte: gebunden oder ungebunden . . . . . . . . . . . . . . . . . . . .
Wiederholung: Dokumentations-Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Klassen und Module im Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
369
371
372
374
378
380
383
385
387
388
Inhalt
| XI
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Links
23 Weiterführende Themen zu Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Erweiterung eingebauter Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pseudo-private Klassenattribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Klassen »neuen Stils« in Python 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallstricke bei Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Übungsaufgaben zu Teil VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
390
394
396
404
407
Teil VII Ausnahmen und Werkzeuge
24 Grundlagen zu Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Warum Ausnahmen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ausnahmebehandlung: Die Kurzfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die try/except/else-Variante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die try/finally-Variante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die vereinheitlichte try/except/finally-Anweisung . . . . . . . . . . . . . . . . . . . . . . .
Die raise-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die assert-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
415
417
421
427
428
429
431
25 Ausnahme-Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Stringbasierte Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Klassenbasierte Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Allgemeine Formen der raise-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
26 Entwurf mit Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Verschachtelte Ausnahme-Behandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Code-Idiome zu Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tipps zum Entwurf mit Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fallstricke bei Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zusammenfassung zum Sprachkern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Übungsaufgaben zu Teil VII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
444
448
451
455
456
461
Teil VIII Die Hülle
27 Typische Aufgaben in Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Max.
Linie
Konvertierung, Zahlen und Vergleiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Manipulation von Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
XII |
Inhalt
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
Modifikation von Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bearbeiten von Dateien und Verzeichnissen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Internet-bezogene Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ausführung von Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fehlersuche, Testen, Zeitmessung, Optimierung . . . . . . . . . . . . . . . . . . . . . . . .
Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
479
486
501
505
508
511
28 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Ein automatisches Beschwerdesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verbindung mit COM: Billige Öffentlichkeitsarbeit . . . . . . . . . . . . . . . . . . . . .
Ein auf Tkinter basierender GUI-Editor zum Bearbeiten von Formulardaten . .
Jython: Die glückliche Ehe zwischen Python und Java . . . . . . . . . . . . . . . . . . .
Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
514
520
526
533
541
29 Python-Ressourcen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Verschiedene Ebenen der Gemeinschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der Entwicklungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dienstleistungen und Produkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der juristische Rahmen: Die Python Software Foundation . . . . . . . . . . . . . . . .
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Beliebte Software von Drittanbietern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Webanwendungs-Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Werkzeuge für Python-Entwickler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
542
547
547
547
548
549
559
561
Teil IX Anhang
A
Installation und Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
B
Lösungen zu den Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Max.
Linie
Max.
Linie
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Inhalt |
XIII
First
Kapitel 1
KAPITEL 1
Fragen und Antworten zu Python
Wenn Sie dieses Buch gekauft haben, dann wissen Sie vielleicht schon, was Python ist,
und warum es eine wichtige Sprache ist, die man lernen sollte. Falls nicht, dann werden
Sie wahrscheinlich erst von Python begeistert sein, wenn Sie die Sprache nach der Lektüre dieses Buches gelernt und Erfahrung in ein oder zwei Projekten damit gesammelt
haben. Bevor wir auf Details eingehen, möchten wir ein paar Seiten darauf verwenden,
Ihnen kurz einige der Hauptgründe für die Popularität von Python vorzustellen. Um eine
Definition von Python zu entwickeln, nimmt dieses Kapitel die Form einer Frage- und
Antwortsitzung an, in der einige der von Anfängern am häufgisten gestellten nichttechnischen Fragen behandelt werden.
Warum Python?
Da es heute viele Programmiersprachen gibt, ist das häufig die erste Frage, die gestellt
wird. Es kann darauf keine exakte, befriedigende Antwort geben, da Python von vielen
Hunderttausenden Benutzern verwendet wird. Die Wahl der Entwicklungsumgebung
erfolgt dabei oft unter ganz speziellen Gesichtspunkten und persönlichen Vorlieben.
Aber nachdem wir Python in den letzten Jahren über tausend Studenten beigebracht und
in über hundert Firmen eingeführt haben, konnten wir einige häufige Gründe herauskristallisieren. Zu den wichtigsten Gründen, die von Python-Benutzern genannt werden,
gehören:
Max.
Linie
Software-Qualität
Für viele ist es die Ausrichtung auf Lesbarkeit, Kohärenz und Software-Qualität im
Allgemeinen, die Python von Sprachen wie Perl unterscheidet, die verschiedene Konzepte mischen. Anders als traditionellere Skriptsprachen wurde Python so entworfen, dass Code lesbar und damit auch wartbar ist. Außerdem unterstützt Python seit
jeher Mechanismen zur Wiederverwendung von Software, z.B. die objektorientierte
Programmierung (OOP).
| 3
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Links
Entwickler-Produktivität
Python steigert die Produktivität von Entwicklern um ein Vielfaches, verglichen mit
kompilierten oder statisch typisierten Sprachen wie C, C++ und Java. Python-Code
ist in der Regel 1/3 bis 1/5 so lang wie äquivalenter Code in C++ oder Java. Also gibt
es weniger Code zu tippen, zu debuggen und zu warten, nachdem er fertig ist. Außerdem sind Python-Programme sofort ausführbar, ohne langes Kompilieren und Linken wie bei einigen anderen Sprachen.
Programm-Portabilität
Die meisten Python-Programme laufen unverändert auf den wichtigsten Rechnerplattformen. So besteht z.B. die Portierung von Python-Code zwischen Unix and
Windows meist nur aus dem Kopieren der Skriptdatei zwischen den Rechnern.
Außerdem bietet Python mehrere Möglichkeiten für die Entwicklung portabler grafischer Benutzeroberflächen.
Bibliotheksunterstützung
Python enthält eine große Sammlung an vorgefertigter, portabler Funktionalität in
seiner Standardbibliothek. Sie bietet Unterstützung bei vielen Aufgaben der Anwendungsprogrammierung, z.B. Textmustererkennung oder Netzwerkkommunikation.
Und Python kann sowohl mit selbst geschriebenen Bibliotheken als auch mit einer
riesigen Anzahl von Programmen für die Anwendungsentwicklung von Dritten erweitert werden.
Komponenten-Integration
Python-Skripte können sehr leicht über eine Vielzahl von Integrationsmechanismen
mit anderen Teilen einer Anwendung kommunizieren. Dadurch kann man Python
zur Anpassung und als Erweiterungswerkzeug bei anderen Produkten verwenden.
Heute kann Python-Code C- und C++-Bibliotheken aufrufen, kann von C- und
C++-Programmen aufgerufen werden, kann mit Java-Komponenten interagieren,
über COM, Corba und .NET kommunizieren, und mit Schnittstellen wie SOAP und
XML-RPC über Netzwerke hinweg interagieren.
Freude am Entwickeln
Da Python so einfach zu benutzen ist und viele Werkzeuge mitbringt, kann es das
Programmieren zu einer vergnüglichen Tätigkeit statt einer langweiligen Beschäftigung machen. Auch wenn dieser Vorteil wenig greifbar ist, hat er einen wichtigen
Einfluss auf die Produktivität insgesamt.
Die ersten beiden Gründe auf dieser Liste, Qualität und Produktivität, sind für die meisten
Python-Entwickler vermutlich die dominierenden.
Software-Qualität
Max.
Linie
Python wurde so entworfen, dass es sowohl eine einfache und leicht lesbare Syntax als
auch ein höchst kohärentes Programmiermodell hat. Der Slogan einer vergangenen
Python-Konferenz brachte das auf den Nenner, man habe den Eindruck, dass Python
4 | Kapitel 1: Fragen und Antworten zu Python
Max.
Linie
Rechts
»zum menschlichen Gehirn passt« (»Python fits your brain«). Das heißt, die Eigenschaften der Sprache interagieren auf konsistente und definierte Weise miteinander und ergeben sich auf natürliche Weise aus einer kleinen Menge von Kernkonzepten. Dadurch
kann man die Sprache leichter erlernen, verstehen und behalten. In der Praxis müssen
Python-Programmierer nicht ständig Handbücher lesen, wenn sie Code schreiben oder
lesen, da die Sprache orthogonal entworfen wurde.
Zur Philosophie von Python gehört, dass es einen leicht minimalistischen Ansatz verfolgt.
Auch wenn also eine Codierungsaufgabe durchaus auf mehrere Arten gelöst werden
kann, so gibt es normalerweise nur eine, die offensichtlich ist, einige weniger offensichtliche Alternativen sowie einen kleinen Satz an kohärenten Interaktionen in der gesamten
Sprache. Außerdem führt Python keine eigenmächtigen Entscheidungen an Ihrer Stelle
aus. Wenn es mehrdeutige Interaktionen gibt, dann wird auf explizite Intervention statt
auf »Magie« gesetzt. In der Python-eigenen Denkweise ist explizit besser als implizit und
einfach ist besser als kompliziert.1
Neben solchen Entwurfsleitlinien enthält Python Mechanismen wie Module und OOP,
was die Code-Wiederverwendung auf natürliche Weise unterstützt. Und da Python auf
Qualität setzt, tun das natürlich auch Python-Programmierer.
Entwickler-Produktivität
Während des großen Internet-Booms Mitte bis Ende der 1990er-Jahre war es schwierig,
genug Programmierer für Software-Projekte zu finden. Die Entwickler sollten Systeme
genauso schnell implementieren, wie sich das Internet entwickelte. In der darauf folgenden Zeit von Entlassungen und wirtschaftlicher Rezession hat sich das Bild verändert.
Heute müssen die Entwicklungsabteilungen die gleichen Aufgaben mit weniger Angestellten durchführen.
In beiden Szenarien hat sich Python als Werkzeug bewährt, das es dem Programmierer
ermöglicht, mit weniger Aufwand mehr zu erreichen. Es optimiert absichtlich die Entwicklungsgeschwindigkeit. Dank der einfachen Syntax, der dynamischen Typisierung, der fehlenden Kompilierung sowie den eingebauten Werkzeugen können Python-Programmierer
ihre Programme in einem Bruchteil der Zeit entwickeln, die bei einigen anderen Sprachen
nötig ist. Im Endeffekt steigert Python normalerweise die Entwickler-Produktivität um ein
Vielfaches, verglichen mit traditionellen Sprachen. Und das ist immer eine gute Nachricht,
ob die Wirtschaft nun rauf- oder runtergeht.
Max.
Linie
1 Einen weiteren Überblick zur Python-Philosophie erhalten Sie, wenn Sie bei einer interaktiven Python-Eingabeaufforderung den Befehl import this eingeben (in Kapitel 2 erfahren Sie, wie). Das ruft ein in Python verstecktes
Osterei auf und gibt die gesammelten Python-Entwurfsprinzipien aus.
Warum Python?
| 5
Max.
Linie
Links
Ist Python eine Skriptsprache?
Python ist eine universelle Programmiersprache, die oft als Skriptsprache verwendet
wird. Häufig definiert man sie als objektorientierte Skriptsprache, eine Definition, die ihre
Ausrichtung auf OOP und den Skriptbereich hervorhebt. Tatsächlich spricht man oft von
einem »Skript« statt von einem »Programm«, wenn es um eine Datei mit Python-Code
geht. In diesem Buch werden die Begriffe »Skript« und »Programm« synonym zueinander
benutzt. Dabei wird »Skript« leicht bevorzugt, wenn es um eine einzelne einfache Datei
geht, und »Programm«, wenn eine höher entwickelte Anwendung aus mehreren Dateien
gemeint ist.
Da der Begriff »Scripting« für viele Leute ganz unterschiedliche Bedeutungen hat, möchten ihn einige überhaupt nicht auf Python anwenden. Tatsächlich denken die Leute an
drei sehr verschiedene Definitionen, wenn sie Python mit dem Begriff »Skriptsprache«
assoziieren, die unterschiedlich gut zutreffen:
Shell-Werkzeuge
Shell-Werkzeuge sind Werkzeuge für die Codierung von betriebssystemnahen Skripten. Solche Programme werden meist in einer Konsole von der Kommandozeile aus
gestartet und verarbeiten oftmals Textdateien und/oder starten weitere Programme.
Python-Programme können das auch, aber das ist nur einer von Dutzenden üblichen
Anwendungsbereichen von Python-Anwendungen. Python ist nicht einfach nur eine
bessere Shell-Skriptsprache.
Steuersprache
Eine Steuersprache ist ein »Klebstoff« zum Steuern und Dirigieren (also Skripten)
anderer Anwendungskomponenten. Tatsächlich werden Python-Programme oft zusammen mit einer großen Anwendung ausgeliefert. Um z.B. ein Hardware-Gerät zu
testen, können Python-Programme Komponenten aufrufen, die einen Low-LevelZugriff auf das Gerät ermöglichen. Oder Programme können Python-Code an strategischen Stellen ausführen, um ein Produkt durch den Endbenutzer anzupassen, damit
nicht der gesamte Quellcode des Systems ausgeliefert und neu kompiliert werden
muss. Die Einfachheit von Python macht es zu einem ganz natürlichen, flexiblen Steuerungswerkzeug. Aber technisch betrachtet ist das lediglich eine der Rollen, die Python
häufig einnimmt. Viele Python-Programmierer schreiben einzelne Skripte, ohne
jemals irgendwelche integrierten Komponenten zu benutzen oder auch nur zu kennen.
Max.
Linie
Einfache Anwendung
Bei dieser Definition ist eine Skriptsprache eine einfache Sprache zum schnellen
Codieren von Aufgaben. Vielleicht ist das die beste Art, sich Python als Skriptsprache
vorzustellen. Mit Python kann man Programme wesentlich schneller entwickeln als
mit kompilierten Sprachen wie C++. Der schnelle Entwicklungszyklus unterstützt
eine explorative, inkrementelle Art von Programmierung, die man erleben muss, um
sie wertschätzen zu können. Aber täuschen Sie sich nicht: Python ist nicht nur für
einfache Aufgaben geeignet. Vielmehr vereinfacht es die Aufgaben durch seine leichte
6 | Kapitel 1: Fragen und Antworten zu Python
Max.
Linie
Rechts
Anwendbarkeit und Flexibilität. Python verfügt über einfache Eigenschaften, macht
es Programmen aber leicht, bei Bedarf zu skalieren und sich weiterzuentwickeln.
Ist Python also eine Skriptsprache oder nicht? Das kommt darauf an, wen Sie fragen. Im
Allgemeinen beschreibt der Begriff Scripting vermutlich am besten die schnelle und flexible Art der Entwicklung, die Python unterstützt, und weniger einen bestimmten
Anwendungsbereich.
Wo ist der Haken?
Der einzige Nachteil von Python ist vielleicht der, dass in der aktuellen Implementierung
die Ausführungsgeschwindigkeit nicht immer genauso hoch ist wie bei kompilierten
Sprachen wie C und C++.
Wir behandeln Implementierungskonzepte noch in diesem Buch. Hier nur ganz kurz
dazu: Standardimplementierungen von Python kompilieren (d.h. übersetzen) QuellcodeAnweisungen heute in ein Zwischenformat namens Bytecode und interpretieren dann diesen Bytecode. Der Bytecode sorgt für Portabilität, da er in einem plattformunabhängigen
Format vorliegt. Aber da Python nicht vollständig zu binärem Maschinencode (z.B. zu
Anweisungen für einen Intel-Chip) kompiliert wird, laufen manche Programme langsamer in Python als in einer vollständig kompilierten Sprache wie C.
Ob Ihnen der Unterschied in der Ausführungsgeschwindigkeit jemals etwas ausmacht, ist
eine andere Sache und hängt davon ab, was für Programme Sie schreiben. Python wird
immer weiter optimiert, und Python-Code für sich allein genommen ist in den meisten
Anwendungsbereichen schnell genug. Außerdem gilt, dass wann immer Sie in einem
Python-Skript »wirklich etwas machen«, z.B. eine Datei verarbeiten oder eine GUI erzeugen, Ihr Programm tatsächlich mit der Geschwindigkeit von C läuft, da solche Aufgaben
sofort von kompiliertem C-Code im Python-Interpreter übernommen werden. Grundsätzlich gilt, dass die Steigerung der Entwicklungsgeschwindigkeit durch Python oftmals
weitaus wichtiger ist als jeder Verlust an Ausführungsgeschwindigkeit, besonders bei der
Geschwindigkeit moderner Rechner.
Sogar für heutige CPU-Geschwindigkeiten gibt es aber Bereiche, die nach der optimalen
Ausführungsgeschwindigkeit verlangen. In der numerischen Programmierung und Animation benötigen oft mindestens die zahlenfressenden Kernkomponenten die Geschwindigkeit von C (oder noch mehr). Auch wenn Sie in solchen Bereichen arbeiten, können Sie
Python einsetzen. Sie müssen lediglich die Teile der Anwendung, die höchste Geschwindigkeit benötigen, in kompilierte Erweiterungen abspalten und mit Ihrem System linken,
damit Sie sie in Python-Skripten benutzen können.
Max.
Linie
Erweiterungen sind nicht das Hauptthema in diesem Buch, aber auch das ist nur ein weiterer Fall von Python-als-Steuersprache, eine Rolle, die weiter oben angesprochen wurde.
Ein herausragendes Beispiel dieser Zweisprachen-Strategie ist NumPy, eine PythonErweiterung für die numerische Programmierung. Durch die Kombination von kompilier-
Wo ist der Haken?
| 7
Max.
Linie
First
Index
Symbole
%-Operator (Rest/Format) 63
&-Operator (bitweises Und) 63
*-Operator (Multiplikation) 63, 338
+-Operator (Addition/Verkettung) 338
... Eingabeaufforderung 179
/-Operator (Division) 63
: (Doppelpunkt) 160
== (Vergleichsoperator) 131
>> (Shift-Operator) 63
>>> (Eingabeaufforderung) 30
^-Operator (bitweises Exklusiv-Oder) 63
_ _add_ _-Methode 352
_ _dict_ _-Attribute 283–284
_ _getattr_ _-Methode 357
_ _getitem_ _-Methode 353
_ _init_ _.py-Dateien 293
_ _init_ _-Konstruktor 338, 344, 349
_ _repr_ _-Methode 358
{ } (geschwungene Klammern) 112
|-Operator (bitweises Oder) 63
’ (Anführungszeichen) für Strings 81
A
Max.
Linie
Abbildung 111
Funktionen 242
abfangen
Ausnahmen 453, 456
benutzerdefinierte Ausnahmen 430
eingebaute Ausnahmen 426
Abfangen von Beschränkungen 432
Ablaufverfolgung 26
abs-Funktion 471
abstrakte Oberklassen 350
allgemeine Mengen-Funktionen 232
Allgemeingültigkeit, Qualifikation 285
and-Operator 63, 164
Anpassung
Dictionaries 114
IDLE 48
Klassen 334–337
Sortierung 483
Texteditoren 52
Vererbung 320
Anweisungen
assert 431
Ausdrücke 151
Begrenzungszeichen 162
definierte 143
Fehlersuche 196
if 157–160
print 32, 152–155
raise 429–431
Reihenfolge der 310
Syntax 160–164
try/except/else 421–428
try/finally 427
try/finally-Endebehandlung 428
Verbund- 32
verpacken 451
Wahrheitstests 164
while 167–169
Zusammenfassung 144
Zuweisung 144, 149, 151, 281
Anwendungen, Internationalisierung von 87
| 609
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Links
Max.
Linie
append-Methode 109, 114, 485
apply-Funktion 239–241
Architektur 268–271
Argumente 206
Änderungen an veränderlichen 223
apply-Funktion 239–241
gemeinsame Verweise 223
Matching 225, 233
Standardwerte 260
Übergabe 222, 232, 234, 241
Argumentübergabe beim Referenzaufruf 225
argv-Attribut (sys-Modul) 93
Arrays 107
Aspektorientierte Programmierung 26
assert-Anweisung 431
Attribute 41
Architektur 269
Klassen 404
Konstruktion 347
pseudoprivate Klasse 394–396
Qualifikation 285
Suche bei der Vererbung 321
Aufgaben, Lösungen zu den 572
Aufrufe
apply-Funktion 241
einbetten 50–51
eingebaute String-Methoden 98
Funktionen 207
indirekte 257
Instanzen 360
Klassen 332
Listenmethoden 109
Methoden 346
Oberklassen-Konstruktoren 346
Signaturen 370
Ausdrücke 62–64, 151
Funktionen, Methoden 151
gemischte Typen 64
häufige 151
Klammern 63
Lambdas 236
List-Comprehension 245–249
Literale 59
Operatoren überladen 64
Werte ausgeben 151
Zahlen 65–73
ausführbare Skripte 36
eingefrorene Binärdateien 51
610 | Index
ausführen
interaktive Kodierung 29–32
Moduldateien 33–37
Ausführung 19–22
Code 505–508
innerhalb des Prozesses 450
Modellvariationen 22
Moduldateien 276
PVM 21
Sequenzen 160
Texteditoren 52
Ausgabe
Funktionen 204–211
Ausgabeströme
modifizieren 494
umlenken 154
Ausnahmen 415–421
abfangen 453, 456
assert-Anweisung 431
äußeres try 449
benutzerdefinierte (Beispiel) 430
eingebaute abfangen (Beispiel) 426
Fehlersuche 448–451
Klassen 434–442
Matching 455
raise-Anweisung 429–431
raw_input 448
Strings 433
Suchroutine 448
testen 452
Text 439
try/except/else-Anweisung 421–428
try/finally-Anweisung 427
verschachteln 444–448, 451–455
zusätzliche Daten übergeben 430
auspackende Zuweisungen 145
äußere try-Anweisungen 449
Auswahl von Modulen 274
automatische Erweiterungen, Windows 35
automatische Speicherverwaltung 14
B
Backslash 83, 163
Bäume 324, 347
Begrenzungszeichen
Anweisungen 162
Blöcke 161
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
benutzerdefinierte Ausnahmen abfangen 430
benutzerdefinierte Dokumentations-Strings 186
benutzerdefinierte Iteratoren 355
Bereiche
Schleifen 178
Zeichenlisten 181
Berichte, PyDoc 189, 192
Beschränkungen 7
abfangen 432
Icon-Klicks 40
betrachten 40
Betrachtung 67
Betriebssysteme, automatische Erweiterungen
35
Beziehungen, Vererbung/OOP 372–378
Bildschirm löschen in IDLE 48
Binärdateien 499
bitweise Operatoren 63, 69
bitweises Shift, Zahlen 69
Blöcke
Begrenzungszeichen 161
-Strings 86
Blockgröße auswählen 497
Boolesche Operatoren 164
Zahlen 69
break-Anweisung 169
Bytecode 7
Escape-Sequenzen 82
kompilieren 20
C
C
Max.
Linie
Integration mit 14
Zuweisungen 173
C++ 10, 14
Callback-Funktionen 240
gebundene Methoden 388
CGI (Common Gateway Interface)
Module 501
Skripte 514, 532
chr-Funktion 471, 473
class-Anweisung 341
close-Funktion 125
cmp-Funktion 472
Code
Architektur 268–271
ausführen 505–508
Ausnahmen 433–442
C, Python und 196
Dokumentation 184–195
einbetten 50–51
Endebehandlung 428
Escape-Sequenzen 82
Fehlersuche 196
Funktionen 204–211
hello world 153
hexadezimale Notation 72
IDLE 47
interaktiver 29–32
Klassenbäume 324
Kommentare 65
kompilieren 20
Modell für dyn. Typisierung 74–79
Module 268, 278–282
Namen 212–218
oktale Notation 72
OOP 321–329
Spalte 1 196
Strings 94–97
testen 31
Unterausdrücke 63
Verwendungshinweise 44
Werkzeuge 243
Wiederverwendung 203, 326
(siehe auch Module)
COM (Microsoft Common Object Model) 474,
481
COM-Framework 513, 521
formletter.py 521
Information finden über 525
Common Gateway Interface (siehe CGI)
compile-Funktion 505
complex-Funktion 473
Constraint-basierte Programmierung 26
continue-Anweisung 169
CPython 22
csh-Shell 569
D
Dateien 124–126
ausführen 19
auswählen 274
Erweiterungen 35
Gültigkeitsbereich 216
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Index |
611
Links
Max.
Linie
kopieren 490
Matching 492
Namensänderungen an mehreren 282
print-Anweisungen in 35
Scanner-Schleifen 177
verarbeiten 125
Verarbeitung 495
Dateimanipulation
glob-Modul 492
Menge von Dateien, Kommandozeile 498
open- und close-Funktionen 124
temporäre Dateien 493
Dateinamensmanipulation 491
Daten in Modulen verbergen 301–304
Datenbanken 10
Datenkapselung 301–304
Datensätze
Dictionaries 118
Klassen als 371–372
Datenstrom-Prozessoren 376
Datenstrukturmanipulation 479–485
def-Anweisung 204–205
zur Laufzeit 206
Deklaratoren 249
del-Anweisung 105, 110, 114, 138
Delegation und OOP 378
Destruktoren 361
diamantförmige Vererbung 397
Dictionaries 111–112
an Indices zuweisen
Datensätze 371–372
erzeugen 183, 485
häufige Konstanten, Operationen 112
kopieren 480
Namensräume 364
Operationen 112–115
Schlüssel 116
Sequenzoperationen 116
Sprachtabellen 115
sys.modules 306
sys.path 304
verändern 114
Verwendungshinweise 116
dir-Funktion 185, 466
Division 68
Dokumentation 184–195
COM 525
Strings 387, 388
612 | Index
Dokumentations-Strings 186
eingebaute 188
Standards 188
Doppelpunkte, Verbundanweisungen 196
dynamische Typisierung 12, 13, 74–79
E
Edit/Runscript-Option (IDLE) 48
editieren (siehe Texteditoren)
Effizienz eingebauter Objekte 58
einbetten
Objekte 390
Python in C 10
Sequenzen 82
einfache Variablen 285
Eingabe modifizieren 494
Eingabeaufforderungen
... 32
>>> 30
Dateierweiterungen 35
einrücken 32
interaktive 32
Verbundanweisungen 32
eingebaute apply-Funktionen 239
eingebaute Ausnahmen
abfangen 426
Klassen 438
eingebaute Dokumentations-Strings 188
eingebaute Funktionen 508
Zahlwerkzeuge 73
eingebaute Module
Binärdateien 499
cgi-Modul 501
Fehlerbeseitigung 508
Internet-Datenverarbeitung 503
Internet-Protokolle 503
Laufzeitprofil 510
string-Funktionen 474
string-Konstanten 474
time-Modul 509
urllib 502
urlparse 503
eingebaute Objekttypen 59
eingebaute String-Methoden 98
eingebaute Typen 57–59
erweitern 390–394
Fehlersuche 135–137
Hierarchien 133–134
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
Max.
Linie
Iteratoren 254
Kategorien 126
eingebaute Werkzeuge 61
eingebauter Gültigkeitsbereich 217
eingefrorene Binärdateien 27
ausführbare 51
Einrückung 161, 196
interaktive Eingabeaufforderungen 32
einstellige Operatoren 63
elif-Klausel 157
else (Schleifen) 157, 168–169, 174
else-Anweisung 421
Endebehandlung 416, 418, 428
Endungen
komplexe Zahlen 71
(siehe auch Erweiterungen)
Entwickler-Produktivität 5
Entwicklung 21
Entwicklungsgeschwindigkeit 5
Entwurf
Ausnahmen 444–455
Entwurfsmuster 329
Funktionen 255–258
Module 305–308
OOP 369
Ereignismeldung 416
erneutes Modul-Laden 288
allgemeine Form 288
Attribute 42–44
Auswirkung auf Importe 312
Beispiel 289
Verwendungshinweise 44
erweiterte Zuweisungsanweisungen 149
Erweiterungen 7
automatische (Windows) 35
Bytecode 20
eingebaute Objekte 58
Importe als 304
Klassen neuen Stils 400
print-Anweisungen 154
Zahlen 61
Escape-Sequenzen 82
eval-Funktion 505
exec-Anweisung 505
execfile-Funktion 505–506
explizite Konfliktauflösung 398
extending
Python mit C 14
Extensible Markup Language (siehe XML)
F
Fabriken 383
feedback.py-Programm 514–520
Fehlerbehandlung 416
Fehlerbeseitigung 425, 448, 508–511
äußere try-Anweisungen 449
IDLE 48
Module 508
(siehe auch Fehlersuche)
Fehlersuche 508–511
Änderungen an veränderlichen Argumente
223
Ausnahmen 415–421, 429–431, 448–451
Code 196
explizite Konfliktauflösung 398
Funktionen 258–262
Icon-Klicks 40
if-Anweisugnen 158
Klassen 404–407
Module 308–315
Objekte 135–137
Wahrheitswerte 164
Fenster, IDLE 47
Fließkomma-Literale 60
Fließkommazahlen 59
float-Funktion 470, 473
Formatierung 212–218
Dictionaries 183, 485
for-Schleifen 173
Funktionen 204–211, 255–258
if-Anweisungen 157
Listen 485
Module 305–308
Schleifen 169–173
Strings 94–97
FormEditor-Program
Vergleich mit feedback.py 532
FormEditor-Programm 526
add_variable 530
Code 527
for-Schleifenblock 529
load_data-Funktion 530–531
select-Methode 531
formletter.py-Programm 521
Formulare, print-Anweisungen 152
for-Schleife 172–177
Variationen 178–183
Frameworks 329, 513
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Index |
613
Max.
Linie
Links
COM 520–525
Entwurfsüberlegungen 532
PIL 553
Swing Java GUI 534–541
Freeware 12
from-Anweisung 279, 281
allgemeine Form 288
for-Zuweisungen 281
interaktives Testen 312
Module 309
Pakete 296
Zuweisungen 281
Funktionen 203, 235
Abbildung 242
allgemeine Menge 232
apply-Funktion 239–241
Argumentübergabe 222, 234
Aufrufe 207
Aufrufsyntax 197
Callback 240
Code 204–211
Code-Wiederverwendung 203
dir 185
eingebaute 508
Entwurf 255–258
Ergebnisse 197
Fehlersuche 258–262
Generatoren 251–255
global-Anweisung 205, 218
Gültigkeitsregeln in 212
indirekte Aufrufe 257
Iteratoren 251–255
Lambdas 235–239
map-Funktion 242
partielle Anwendung 244
Python-Code ausführen 505–508
raw_input 39, 448
return-Anweisung 205
reversed-Funktion 180
Typkonvertierungen 472
überladen 370
überschneidende Elemente 209
umgebende 214
verschachteln 219–222
Werte 231
Zahlwerkzeuge 73
Max.
Linie
614 | Index
G
Ganzzahlen 60, 70
lange 70
Literale 60
Zuweisungen 74
gebundene Instanzmethoden 385
gemeinsame Objektverweise 128
gemeinsame Verweise 128–130, 223
gemischte Operatoren 62
gemischte Typen, Ausdrucksoperatoren 64
gemischte Verwendungsarten, Module 303
Generator-Ausdrücke 254
Generatoren 251–255
Generierung
mehrerer Instanzobjekte 330–334
von Instanzen 371
generische Datenstrom-Prozessoren 376
Gleichheit, testen auf 131–133
global deklariert 214
global-Anweisung 205, 218
globaler Gültigkeitsbereich 213
glob-Modul 492
grapher.py 535, 540
Graphical User Interface (siehe GUI)
Groß-/Kleinbuchstaben-Unterscheidung
Namen 147
Größe von Objekten 89
große Zeichenmengen kodieren 86
GUI (Graphical User Interface)
Entwurfsüberlegungen 532
Programmierung 9
Gültigkeitsbereich 179, 362, 379
eingebauter 217
importieren 286
Lambdas 238
LGB-Regel 214
Regeln 212–218
verschachteln 206
verschachtelte Funktionen 219–222
(siehe auch Namensräume)
H
Hammond, Mark 521
»hat-eine«-Beziehung 374
hello world ausgeben 153
hexadezimale Konstanten 61
hexadezimale Literale 60
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
hexadezimale Notation 72
hex-Funktion 473
Hierarchien
Klassen 334
Objekte 133–134
HTML (Hypertext Markup Language) 9, 515
PyDoc-Berichte 192
Hypertext Markup Language (siehe HTML)
I
Max.
Linie
Icons, Windows- 37–41
Identitätstests 131
IDLE 45–49
if-Anweisungen 157–160
imaginäre Zahlen 71
Implementation 22
import-Anweisung 505
allgemeine Form 288
als Zuweisung 281
importieren
Äquivalenz 282
Architektur 269
Attribute 42–44
Erweiterungen 304
Gültigkeitsbereich 286
Module 41–42, 271–277, 279–280
Namensstrings 308
Pakete 292–300
rekursiv 311
Verwendungshinweise 44
Zuweisungen 281
IndexError-Ausnahme 418
indirekte Aufrufe 257
indizieren 80, 90, 91
_ _getitem_ _-Methode 353
Dictionaries (siehe Dictionaries)
Klassen 353
Listen 104–110
in-Operator 63
Installation 18
Instanzen 371
Aufrufe 360
Klassen 322
mehrere -objekte 330–334
Slots 400
zusätzliche Daten schicken 440
Integration
mit C 10, 14, 51
Komponenten 10
Integrität, Tupel 123
interaktive Eingabeaufforderungen
einrücken 32
Kommandos 32
interaktive Kommandozeile, Python 29
interaktive Sitzungen 41
interaktives Testen 312
Internationalisierung von Anwendungen 87
Internet
cgi-Modul 501
Datenverarbeitung 503
Hilfsmodule 9
Protokolle 503
urllib-Modul 502
urlparse-Modul 503
Internet-Module 501–504
Interpreter nutzen 17
int-Funktion 470, 473
Introspektion 306
IronPython 23
is not-Operator 63
is-a-Relation 372
is-Operator 63, 131
Iteration 167–169, 242
benutzerdefinierte 355
Klassen 354
Strings 89
J
Java/Jython 533
Java-Bibliotheken 534
Java-Scripting 535
Nnstallation 533
Swing-Anwendung, grapher.py 535
Vergleich 540
Jython 23
K
Kanäle 495
Kapselung 369
Kategorien
Ausnahmen 434
Typen 126
KI-Programmierung 11
Klammern in Ausdrücken 63
Klassen
_ _add_ _-Methode 352
_ _getattr_ _-Methode 357
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Index |
615
Links
Max.
Linie
_ _getitem_ _-Methode 353
_ _init_ _-Konstruktor 338, 344, 349
_ _repr_ _-Methode 358
aufrufen 332
Ausnahmen 434–442
Bäume 324
als Datensätze 371–372
Dokumentations-Strings 387
entwerfen mit OOP 369
Fehlersuche 404–407
generische Objektfabriken 383
Gründe für 320
Instanzen 322
Iteration 354
mehrfache Instanzobjekte 330
Methoden 344, 400
Module 336, 388
Namensräume 362–368
Namensverstümmelung 394
neuer Stil 396, 404
Oberklassen 334
Operatorüberladung 127, 337, 340, 351
Persistenz 379
Properties 401
pseudoprivate Attribute 394–396
Schnittstellen 349
Unterklassen 334–337
Vererbung 334–335, 383
Klassen neuen Stils 396, 404
klassifizierende Namen 363
Klauseln
try/else 424
try-Anweisung 422
Kommandos, interaktive Eingabeaufforderungen 32
Kommandozeilenargumente 29–32, 93
Kommentare 65, 160
Dokumentation 185
kommutative Operatoren 359
Komodo 50
kompilieren
Bytecode 20
Erweiterungen 7
Module 276
Psyco, Just-in-Time-Compiler 24
komplexe Zahlen 61, 71
Komponenten
Integration 10
mischen 27
616 | Index
Psyco, Just-in-Time-Compiler 24
PVM 21
Komposition 320, 374
Konfiguration
Ausnahmen 444–455
Dictionaries 112–115
Funktionen 255–258
Module 305–308
Suchpfad-Einstellungen 293
Konfliktauflösung 398
Konstanten
Listen 105
Tupel 121
Konstruktoren 326
Klassen 338, 344, 346, 349
Kontrollfluss
Anweisungen 160
ungewöhnlicher 417
verschachteln 445
Konventionen, Namens- 148, 485
Konvertierung, Strings 64, 92–95, 470–474
Konzepthierarchie 143
kopieren
copy-Modul 481
Dateien 490
Dictionaries 480
Objekte 128–130, 479
Vergleich mit verweisen 145
Verzeichnisse 490
Kopplung 255
ksh-Shell 569
Kurzschlussauswertung 165
L
Lambdas 235–239
Operatoren 63
lange Ganzzahlen 60, 70, 470
Laufzeit, def-Anweisungen 206
Laufzeitmessung 508–511
Laufzeitprofil 508–511
lazy evaluation 26
leere Sequenzen 132
leere Strings 80
Leerzeichen in Programmen 160
Leerzeilen 196
LEGB-Regel 214–215
leichte Bedienung 15
len-Funktion 89
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
lesen von stdin 498
lexikalische Gültigkeitsbereiche 286
Links, Namensräume 367
List-Comprehension-Asdrücke 245–249
Listen
an Ort und Stelle ändern 108
Dictionaries 116
einfache Operationen auf 106
erzeugen 485
häufige Konstanten 105
Indizierung und Slicing 107
Methoden 109
Objekte 131–133
Operationen 106
sys.path 274
Tupel 123
Zeichen 181
list-Funktion 472
Literale 59
Dictionaries 112
Fließkomma 60
Listen 105
Strings 81–88
Tupel 121
Zahlen 60
logisch falsche Objekte 132
logische Operatoren 63
logische Programmierung 26
lokale Variablen 211
lokaler Gültigkeitsbereich 213
long, C 470
long-Funktion 473
Lösungen zu den Aufgaben 572
Lundh, Fredrik 553
M
Max.
Linie
Manuale (siehe Dokumentation)
map-Funktion 181, 242
Matching
Argumente 225, 233
Ausnahmen 455
Dateien 492
Matritzen 107
max-Funktion 474
mehrdimensionale Arrays 107
mehrere Instanzobjekte 320, 330–334
mehrfache Vererbung 405
Klassen 380
Reihenfolge 405
mehrfache Verzweigung 159
Werkzeuge 238
Mehrfachziel-Zuweisungen 146
mehrzeilige Block-Strings 86
Mengen-Objekte 123
Metaprogramme 306, 308
Methoden
Aufrufe 346
Dictionaries 115
Klassen 344
Listen 109
Operatorüberladung 352
Strings 97
Microsoft Common Object Model (siehe COM)
min-Funktion 473
Mischen von Komponenten 27
Mixins 381
Modelle
Ausführung 22
dynamische Typisierung 74–79
Modifikation
Ausgabe 494
Dictionaries 114
Eingabe 494
Strings 94, 98
veränderliche Typen 103
Module 57, 267, 316
_ _name_ _ und _ _main_ _ 303
Attribute 42–44
ausführen 276
auswählen 274
Code 268
copy 481
Dateien 33–37
Datenkapselungskonvention 301–304
definieren 278–282
Entwurf 305–308
erneut laden 312
Erweiterungen 304
Fehlersuche 308–315
gemischte Verwendungsarten 303
Gültigkeitsbereich 216
importieren 41–42, 271–277
Internet 501–504
Klassen 336, 388
kompilieren 276
Namensräume 283–287
Pakete 292, 300
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Index |
617
Max.
Linie
Links
shutil 490
Standardbibliothek 271
suchen 272
Suchpfad ändern 304
Verwendungshinweise 44
Zahlwerkzeuge 73
(siehe auch erneutes Modul-Laden)
Module definieren 278–282
Muster
eingebaute String-Methoden 98
Entwurfs- 329
N
Namen
Änderungen an mehreren Dateien 282
Konventionen 148, 485, 487
Moduldateien 42–44
Qualifikation 285, 363
Typen 148
unqualifizierte Namen 362
Variablen-, Regeln 147
Verstümmelung 394
Verweis 145
Zuweisung 145
Namensänderungen an mehreren Dateien 282
Namensräume 212, 323, 362–368
Baumkonstruktion 347
class-Anweisung (Beispiel) 342
Dictionaries 364
LGB-Regel 214
Links 367
Module 268, 283–287
(siehe auch Gültigkeitsbereiche)
Negationsoperator 63
negative Abstände, Strings 90
None-Objekt 109, 133, 170, 197
not in-Operator 63
not-Operator 63, 164
numerische Genauigkeit 60
numerische Objekte
bitweise Operationen 69
lange Ganzzahlen 70
numerische Programmierung 11
NumPy, numerische Programmier-Erweiterung
11
Max.
Linie
618 | Index
O
Oberflächen
IDLE 45–49
Komodo 50
Programmierung 9
(siehe auch GUI)
Oberklassen 322, 334
abstrakte 350
Konstruktoren 346
oberste Ebene, Kopien auf 130
Objektänderung an Ort und Stelle 78
Objekte 57
Änderung an Ort und Stelle 78
einbetten 390
eingebaute 58
Fabriken 383
Fehlersuche 135–137
Funktionen 205
Gleichheitstests 131
Hierarchien 133–134
Klassifikation 126
kopieren 128–130, 479
Listen 104–106
Literale 59
mehrere Instanz- 330–334
Mengen 123
Namensräume 363
operations 106
Persistenz 10, 379
shared references 128–130
String-Methoden 97
veränderliche 260
Verbundtypen 126
Vergleiche 131–133
Wahrheitswerte 132
Zahlen 59–62, 65–73
objektorientierte Programmierung (siehe OOP)
Objektverweis
Erzeugung 145
Funktionen 205
oct-Funktion 473
offene Paar-Regel 163
öffnen von Windows-Icons 37–41
Oktalzahlen
Konstanten 61
Literale 60
Notation 72
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
OOP (Object-Oriented Programming) 12
Delegation 378
entwerfen mit 369
Fabriken 383
Klassen (Beispiel) 330
Klassenobjekte 330, 334
Überblick 321–329
Vererbung 372–378
Open Source-Software 12
open-Funktion 124
Operationen
Dateien 124
Dictionaries 112–115
Listen 106
Tupel 121
Operatoren
Ausdrücke 62–64
Klassen 337
kommutative 359
Strings 88–94
überladen 64, 320
Überladung 127
Klassen 337, 340, 351
Vorrang 62
Optionen, Dictionaries 114
ord-Funktion 471, 473
or-Operator 63, 164
os.environ-Dictionary 488
os.error-Ausnahme 488
os.listdir-Funktion 491
os.name-Attribut 488
os.path-Modul, -Funktionen 489
os.rename-Funktion 491
os-Modul 486–490, 522
Attributdefinition 488
Funktionen (oft benutzte) 486
String-Attribute 489
Ousterhout, John 526
P
Max.
Linie
Pakete
importieren 292–300
Module 300
parallele Traversierungen 181
Parameter, Funktionen 206
parsen
Argumente 222, 234
raise-Anweisungen 430
Text 101
partielle Anwendung von Funktionen 244
pass-Anweisung 169
PATH-Umgebungsvariable 37, 530
Performance 21
Perl-Sprache 15
Persistenz 379
Pfade
Module 272
Qualifikation 285
Suche 304
suchen 293
pickle-Modul 10, 520, 522
PIL (Python Imaging Library) 513
Polymorphie 208, 210, 230, 369
portable Datenbank-APIs 10
portables ANSI-C 13
positive Abstände, Strings 90
POSIX-Konventionen 487
print-Anweisungen 32, 152–155
in Dateien 35
Zahlen 67
Produktivität 5
profile-Modul 511
Programmierung 9
Architektur 268–271
ausführen 505–508
Ausnahmen 433–442
Code-Wiederverwendung 204
Datenbanken 10
Dokumentation 184–195
Endebehandlung 428
Fehlersuche 196
Funktionen 204–211
GUI 9
hello world 153
Interpreter 17
KI 11
Klassenbäume 324
Kommentare 65
Modell für dyn. Typisierung 74–79
Module 268, 278–282
Namen 212–218
numerische 11
OOP 321–329
String-Methoden 97
Strings 94–97
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Index |
Max.
Linie
619
Links
Struktur 57
Werkzeuge 243
Programmstruktur 269
Properties
Klassen 401
Listen 104–106
Syntaxregeln 160–164
Prototyp-Erstellung 11
pseudoprivate Klassenattribute 394–396
Psyco, Just-in-Time-Compiler 24
pth-Dateiverzeichnisse 273
PVM (Python Virtual Machine) 21
PyDev 50
PyDoc-Werkzeuge 189
HTML-Berichte 192
PyPy 25
Python ausführen
eingebetteter Code, Objekte 50–51
interaktive Kommandozeile 29–32
Interpreter 18
Moduldateien 33–37
Unix-artige Skripte 36
Python Imaging Library (PIL) 553
Python Virtual Machine (PVM) 21
Python.NET 23
PYTHONPATH-Variable 568
Verzeichnisse 273
PYTHONSTARTUP-Variable 568
PythonWin 50
Q
Qualifikation
_ _getattr_ _-Methode 357
Namen 285, 363
Qualität 4
Quellcode kompilieren 20
R
Max.
Linie
raise-Anweisung 429–431, 442
random-Modul 483
Rapid Prototyping 11
raw_input-Funktion 39, 448
re.compile( ) (Strings) 477
Rechte, ausführbare Skripte 36
Regeln
Gültigkeitsbereiche 212–218
LEGB 215
620 | Index
offene Paare 163
Syntax 160–164
reguläre Ausdrücke 474, 479
rekursiv importieren 311
re-Modul 474, 479
Repräsentationen, Strings 358
reservierte Wörter 147
Restoperator 63
return-Anweisungen 197, 205
reversed-Funktion 180
rohe Strings, Escapes unterdrücken 85
Rollen, Ausnahmen 416
RPython 25
S
Schleifen
Bereiche 178
Datei-Scanner 177
else 157, 169, 174
for 172–183
Formatierung 169–173
String-Iteration 89
verschachteln 246
while 167–169
Schlüsselwort-Argumente 226–234
Übergabe 241
Schnittstellen
Klassen 349
PyDoc 189
PythonWin 50
schreiben
auf sys.stdout 155
(siehe auch Code)
schreibweisenunabhängige Sortierung 483
Scripting 6, 9
Internet 9
PVM 21
Sprachen 13
umlenken 155
Unix-ähnliches 36
verpacken 451
Sequenzen 80
Ausführung 160
einbetten 82
Funktionen 242
Listen 106
überschneidende Elemente 209
unterdrücken 85
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
Max.
Linie
Shell-Werkzeuge 6
shelve-Modul 379
Shift-Operatoren 63
shutil-Modul 490
Signaturen, Aufrufe 370
Slicing 80, 90–91
Listen 107
Zuweisungen 108
Slots, Instanzen 400
Software-Qualität 4
Sortierung anpassen 483
sort-Methode 109, 482
spärliche (sparse) Datenstrukturen, Dictionaries
für 117
Speicher, automatische Verwaltung von 14
Speicherbereinigung 14
Verweise 79
speichern, Text 33
Spezialfall, Behandlung 416
Spiele 11
Sprachen
Vergleiche mit 15
zukünftige Eigenschaften einschalten 302
Sprachtabellen, Dictionaries 115
Stackless Python-System 25
Stacks 444
Standardargumente 227, 229, 260
Standard-Ausnahmebehandler 418
Standard-Bibliotheksmodule 271
Standard-Manualsatz 193
Standards, Dokumentations-Strings 188
Startoptionen 52
Startverzeichnis 272
statisch verschachtelte Gültigkeitsbereiche 219–
222
statische lokale Funktionsvariablen 260
statische Methoden, Klassen neuen Stils 400
Stein, Greg 521
Steuersprache 6
str-Funktion 472
string-Modul 474
Ersetzungsoperation 478
Funktionen 474
Konstanten 474
Problem mit regulären Ausdrücken 476
Strings
ändern, formatieren 94
Ausnahmen 433
Block- 86
Codes 96
definierte 80
Dokumentation 387–388
einfache Operationen 88–94
Formatierung 94–97
indizieren 90–91
Konstanten, Operationen 81
Listen 106
Literale 81–88
Methoden 97
modifizieren 94, 98
Slicing 90–91
Typkategorien 102
zurückgeben 358
Strings in doppelten Anführungszeichen 82
Strings in dreifachen Anführungszeichen 86
Strings in einfache Anführungszeichen 82
Strom-Umlenkung 34
struct-Modul 499
Formatierungscodes 500
suchen
Ausnahmen 448
Module 272
Pakete 293
-Pfad ändern 304
Vererbung 321
Swing Java GUI-Toolkit 513
syntaktische Verschachtelung 446
Syntax
Anweisungen 160–164
apply-Funktion 241
Ausführungssequenzen 160
Backslash 163
offene Paare 163
Syntaxregeln
Anweisungs-Begrenzungszeichen 162
Blöcke 160–161
Leerzeichen, Kommentare 160
Variablennamen 147
Verbundanweisungen 160
sys.modules-Dictionary 306
sys.path-Dictionary 304
sys.path-Listen 274
sys.stdout, Schreiben auf 155
Systemprogrammierung 9
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Index |
621
Links
T
Max.
Linie
Tabellen, Dictionaries 115
Tainting 26
tempfile-Modul 520
temporäre Dateien 493
Testen 508–511
testen
Ausnahmen 452
Code 31
Gleichheit 131–133
if-Anweisugnen 158
innerhalb des Prozesses ausführen 450
interaktiv 312
Wahrheitswerte 164–166
Tests hinzufügen 246
Tests innerhalb des Prozesses ausführen 450
Text 86
Ausnahmen 439
Dokumentations-Strings 188
Kommentare 65
parsen 101
speichern 33
String-Methoden 97
Strings modifizieren 94
umlenken 154
Texteditoren
Module 278–282
Startoptionen 52
time-Modul 509
Tk/Tkinter 9, 513, 526–532
GUI 513
Umgebungseinstellungen 569
Tracing 26
Traversierungen
parallele 181
Schleifen 180
try/except/else-Anweisung 421–428
try/finally-Anweisung 427
try-Anweisung 422
try/except/else-Anweisung 421
try/finally-Anweisung 427
Tupel
definierte 120–123
Eigenschaften 121
Funktionen 472
Inhalt sortieren 482
Zuweisung 145
622 | Index
Typen
Dateien 124–126
eingebaute 390–394
Einschränkungen 205
Fehlersuche 135–137
Gründe für eingebaute 57–59
Hierarchien 133–134
Iteratoren 254
Kategorien 102, 126
konvertieren 64, 472
Modell für dyn. Typisierung 74–79
Namen 148
Objekte 126
Sammlungstupel 120–123
veränderliche 103
Zahlen 59–62
U
Übergabe von Schlüsselwortargumenten 241
überladen von Operatoren 64, 127, 320
Klassen 340, 351
Übersetzung, Psyco, Just-in-Time-Compiler 24
umgebende
Ausdrücke 63
Funktionen 214
Umgebung 567
umlenken
Ausgabeströme 154
Skripte 155
ungebundene Klassenmethoden 385
Unicode-Strings 86
Unix-ähnliche System-Skripte 36
unqualifizierte Namen 362
Unterausdrücke 63
unterdrücken von Escape-Sequenzen 85
Unterklassen 322, 334, 391
unveränderliche Sequenzen 80
unveränderliche Typen ändern 137
urllib-Modul 502
urlparse-Modul 503
URLs, urllib-Modul 502
V
van Rossum, Guido 541
Variablen 43
einfache 285
lokale 211
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Rechts
Max.
Linie
Namensregeln 147
Zahlen 65
Zuweisungen 74
Variationen, Ausführungsmodelle 22
veränderliche Argumente, Änderungen an 223
veränderliche Objekte 260
veränderliche Typen 103
Veränderlichkeit 80, 103, 137
Verarbeitung
Dateien 125, 495
Zahlobjekte 61
Zeilen 499
Verbergen von Objekten 26
Verbreitung von Ausnahmen 420, 431
Verbundanweisungen 32, 160
Verbundobjekttypen 126
Vererbung 320, 369
Anpassung 320
diamantförmig 397
Klassen 334, 383
Konstruktion von Namensraumbäumen 347
mehrfache 405
OOP 372–378
Spezialisierungsmethoden 348–350
Suche 321
Vergleiche 470–474
importieren/Gültigkeitsbereiche 286
Klassen/Module 388
Objekte 131–133
Operatoren 63
Sprachen 15
Zahlen 472
Verkettung 80
+ (Addition/Verkettung) 338
Strings 88–94
Verpacken von Anweisungen 451
verschachteln
Ausnahmen 444–448, 451–455
Blöcke 160
Funktionen 219–222
Gültigkeitsbereiche 154, 206, 366
Kontrollfluss 445
Lambdas 238
Listen 107
Namensräume 213, 287
Schleifen 246
syntaktisch 446
Verwaltung von Speicher, automatische 14
Verweise
Argumente 223
gemeinsame 128–130
Objektänderung an Ort und Stelle 78
Speicherbereinigung 79
Vergleich mit Kopien 145
Zuweisungen 135
Verwendungshinweise 44, 116
Verzeichnisse kopieren 490
verzögerte Auswertung 26
Vorrang
Ausdrücke 63
Regeln (Operatoren) 62
Vorwärtsverweise 310
W
Wahrheitswerte
Objekte 132
testen 164–166
Webseiten, cgi-Modul 501
Website-Ressourcen XXII
Werkzeuge
Ausdrücke 62–64
Dokumentation 185
eingebaute Funktionen 73
mehrfache Verzweigung 238
Programmierung 243
PyDoc 192
Shell 6
Zahlen 61
Werte
Funktionen 231
Standardargumente 260
Wahrheitswerte 164–166
Wahrheitswerte für Objekte 132
while-Schleife 167–169
Wide-Character-Strings 86
Wiederholung, eine Ebene tief 136
win32com 521
Dispatch-Funktion 522
formletter.py-Programm 521
Windows
automatische Erweiterungen 35
Icons 37–41
(siehe auch Oberflächen)
Wing IDE 50
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Max.
Linie
Index |
623
Links
X
XML (Extensible Markup Language) 9, 11, 14
Z
Zahlen 59–62, 67, 470–474
Ausdrücke 62–64
Dezimalzahlen 74
einfache Operationen 65–73
eingebaute Typen 57–59
komplexe Zahlen 71
print-Anweisungen 67
Zuweisungen 74
Zählschleifen 167–169, 178
Zeichen
große Mengen kodieren 86
Listen 181
Zeilen, Verarbeitung 499
zip-Funktion 181, 183
Zope 559
Zusammenhalt 255
zusätzliche Daten an Instanzen schicken 440
Zuweisungen 74
C 173
Funktionen durch 205
Listen 108
Namen, klassifizierende 363
Objektänderung an Ort und Stelle 78
Verweise 135
Zuweisungsanweisungen 144, 149, 151, 281
Formen 145
implizite 145
Objektverweise 145
Regeln für Variablennamen 147
zyklische Datenstrukturen ausgeben 136
Max.
Linie
Max.
Linie
624 | Index
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Herunterladen