Einstieg in Python 3

Werbung
1406.book Seite 1 Donnerstag, 5. März 2009 1:08 13
Thomas Theis
Einstieg in Python 3
1406.book Seite 3 Donnerstag, 5. März 2009 1:08 13
Auf einen Blick
1
Einführung ............................................................................
13
2
Erste Schritte ........................................................................
17
3
Programmierkurs ...................................................................
31
4
Datentypen ...........................................................................
77
5
Weiterführende Programmierung .......................................... 131
6
Objektorientierte Programmierung ........................................ 179
7
Neues in Python 3 ................................................................ 195
8
Verschiedene Module ........................................................... 199
9
Dateien ................................................................................. 225
10 Internet ................................................................................ 257
11 Datenbanken ........................................................................ 291
12 Benutzeroberflächen ............................................................. 309
13 Lösungen .............................................................................. 379
3
1406.book Seite 5 Donnerstag, 5. März 2009 1:08 13
Inhalt
1
Einführung ................................................................................ 13
1.1
1.2
1.3
1.4
1.5
2
13
14
14
15
16
Erste Schritte ........................................................................... 17
2.1
2.2
2.3
3
Vorteile von Python .....................................................................
Verbreitung von Python ...............................................................
Aufbau des Buchs ........................................................................
Übungen .....................................................................................
Installation von Python ................................................................
Python als Taschenrechner ...........................................................
2.1.1 Eingabe von Berechnungen .............................................
2.1.2 Addition, Subtraktion und Multiplikation ........................
2.1.3 Division, Ganzzahldivision und Modulo ...........................
2.1.4 Rangfolge und Klammern ................................................
2.1.5 Variablen und Zuweisung ................................................
Erstes Programm ..........................................................................
2.2.1 Hallo Welt ......................................................................
2.2.2 Eingabe eines Programms ................................................
Speichern und Ausführen .............................................................
2.3.1 Speichern ........................................................................
2.3.2 Ausführen unter Windows ..............................................
2.3.3 Ausführen unter Linux .....................................................
2.3.4 Kommentare ...................................................................
2.3.5 Verkettung von Ausgaben ...............................................
2.3.6 Lange Ausgaben ..............................................................
17
17
18
18
19
20
21
21
22
22
22
23
27
27
28
28
Programmierkurs ...................................................................... 31
3.1
3.2
Ein Spiel programmieren ..............................................................
3.1.1 Das fertige Spiel ..............................................................
3.1.2 Der Weg zum fertigen Spiel .............................................
3.1.3 Mögliche Erweiterungen .................................................
Variablen und Operatoren ...........................................................
3.2.1 Berechnung und Zuweisung ............................................
3.2.2 Eingabe einer Zeichenkette .............................................
3.2.3 Eingabe einer Zahl ...........................................................
3.2.4 Spiel, Version mit Eingabe ...............................................
3.2.5 Zufallszahlen ...................................................................
31
31
31
32
32
32
33
33
35
36
5
1406.book Seite 6 Donnerstag, 5. März 2009 1:08 13
Inhalt
3.3
3.4
3.5
3.6
3.7
4
37
38
38
39
40
42
44
45
46
47
47
48
48
50
51
54
56
57
58
58
59
61
62
63
65
66
68
69
70
71
72
Datentypen .............................................................................. 77
4.1
6
Verzweigungen ............................................................................
3.3.1 Vergleichsoperatoren ......................................................
3.3.2 Einfache Verzweigung .....................................................
3.3.3 Spiel, Version mit Bewertung der Eingabe .......................
3.3.4 Mehrfache Verzweigung ..................................................
3.3.5 Logische Operatoren .......................................................
3.3.6 Mehrere Vergleichsoperatoren ........................................
3.3.7 Spiel, Version mit genauer Bewertung der Eingabe ..........
3.3.8 Rangfolge der Operatoren ...............................................
Schleifen ......................................................................................
3.4.1 for-Schleife .....................................................................
3.4.2 Schleifenabbruch mit break .............................................
3.4.3 Geschachtelte Kontrollstrukturen ....................................
3.4.4 Spiel, Version mit for-Schleife und Abbruch ....................
3.4.5 for-Schleife mit range() ....................................................
3.4.6 Spiel, Version mit range() ................................................
3.4.7 while-Schleife .................................................................
3.4.8 Spiel, Version mit while-Schleife und Zähler ....................
Fehler und Ausnahmen ................................................................
3.5.1 Basisprogramm ................................................................
3.5.2 Programmabbruch vermeiden .........................................
3.5.3 Fehler abfangen ..............................................................
3.5.4 Exkurs: Schleifenfortsetzung mit continue .......................
3.5.5 Spiel, Version mit Ausnahmebehandlung ........................
Funktionen und Module ..............................................................
3.6.1 Einfache Funktionen ........................................................
3.6.2 Funktionen mit einem Parameter ....................................
3.6.3 Funktionen mit mehreren Parametern .............................
3.6.4 Funktionen mit Rückgabewert .........................................
3.6.5 Spiel, Version mit Funktionen .........................................
Das fertige Spiel ...........................................................................
Zahlen
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
.........................................................................................
Ganze Zahlen ..................................................................
Zahlen mit Nachkommastellen ........................................
Operatoren .....................................................................
Rundung und Konvertierung ...........................................
Modul math ....................................................................
Brüche ............................................................................
77
77
79
80
80
82
83
1406.book Seite 7 Donnerstag, 5. März 2009 1:08 13
Inhalt
4.2
4.3
4.4
4.5
4.6
4.7
4.8
5
Zeichenketten ..............................................................................
4.2.1 Eigenschaften ..................................................................
4.2.2 Operatoren .....................................................................
4.2.3 Operationen ...................................................................
4.2.4 Funktionen .....................................................................
4.2.5 Umwandlung von Zeichenkette in Zahl ...........................
4.2.6 Umwandlung von Zahl in Zeichenkette ...........................
4.2.7 Datentyp bytes ................................................................
Listen ..........................................................................................
4.3.1 Eigenschaften ..................................................................
4.3.2 Operatoren .....................................................................
4.3.3 Funktionen und Operationen ..........................................
Tupel ...........................................................................................
4.4.1 Eigenschaften ..................................................................
4.4.2 Operationen ...................................................................
4.4.3 Tupel entpacken .............................................................
Dictionarys ..................................................................................
4.5.1 Eigenschaften ..................................................................
4.5.2 Funktionen .....................................................................
4.5.3 Views ..............................................................................
4.5.4 Vergleiche .......................................................................
Mengen, Sets ...............................................................................
4.6.1 Eigenschaften ..................................................................
4.6.2 Funktionen .....................................................................
4.6.3 Operatoren .....................................................................
4.6.4 Frozenset ........................................................................
Wahrheitswerte und Nichts .........................................................
4.7.1 Wahrheitswerte True und False .......................................
4.7.2 Nichts, None ...................................................................
Referenz, Identität und Kopie ......................................................
4.8.1 Referenz und Identität ....................................................
4.8.2 Ressourcen sparen ..........................................................
4.8.3 Objekte kopieren ............................................................
86
86
87
89
91
94
96
97
98
98
100
101
104
104
104
106
109
109
110
111
113
114
114
115
116
119
120
120
123
125
125
127
128
Weiterführende Programmierung ............................................ 131
5.1
Allgemeines .................................................................................
5.1.1 Kombinierte Zuweisungsoperatoren ................................
5.1.2 Anweisung in mehreren Zeilen ........................................
5.1.3 Eingabe mit Hilfestellung ................................................
131
131
133
134
7
1406.book Seite 8 Donnerstag, 5. März 2009 1:08 13
Inhalt
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
8
5.1.4 Anweisung pass ..............................................................
5.1.5 Funktionen eval() und exec() ...........................................
Ausgabe und Formatierung ..........................................................
5.2.1 Funktion print() ...............................................................
5.2.2 Formatierte Ausgabe .......................................................
Conditional Expression ................................................................
Iterierbare Objekte ......................................................................
5.4.1 Funktion zip() ..................................................................
5.4.2 Funktion map() ...............................................................
5.4.3 Funktion filter() ...............................................................
List Comprehension .....................................................................
Fehler und Ausnahmen ................................................................
5.6.1 Allgemeines ....................................................................
5.6.2 Syntaxfehler ....................................................................
5.6.3 Laufzeitfehler ..................................................................
5.6.4 Logische Fehler und Debugging ......................................
5.6.5 Fehler erzeugen ..............................................................
5.6.6 Unterscheidung von Ausnahmen .....................................
Funktionen ..................................................................................
5.7.1 Variable Anzahl von Parametern ......................................
5.7.2 Benannte Parameter ........................................................
5.7.3 Voreinstellung von Parametern .......................................
5.7.4 Mehrere Rückgabewerte .................................................
5.7.5 Übergabe von Kopien und Referenzen ............................
5.7.6 Lokal, global ...................................................................
5.7.7 Lambda-Funktion ............................................................
Eingebaute Funktionen ................................................................
5.8.1 Übersicht ........................................................................
5.8.2 Funktionen max(), min() und sum() .................................
5.8.3 Funktionen chr() und ord() ..............................................
5.8.4 Funktionen reversed() und sorted() .................................
Eigene Module ............................................................................
5.9.1 Eigene Module erzeugen .................................................
5.9.2 Eigene Module verwenden ..............................................
Parameter der Kommandozeile ....................................................
5.10.1 Übergabe von Zeichenketten ...........................................
5.10.2 Übergabe von Zahlen ......................................................
5.10.3 Beliebige Anzahl von Parametern ....................................
135
137
138
138
140
144
145
146
146
148
149
151
151
152
153
154
158
159
161
161
162
163
164
165
168
169
170
170
171
172
173
174
174
175
176
176
177
177
1406.book Seite 9 Donnerstag, 5. März 2009 1:08 13
Inhalt
6
Objektorientierte Programmierung ......................................... 179
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
7
7.2
Neue und geänderte Eigenschaften ..............................................
7.1.1 Auffällige Änderungen .....................................................
7.1.2 Weitere Änderungen .......................................................
Konvertierung von Python 2 zu Python 3 .....................................
195
195
196
197
Verschiedene Module ............................................................... 199
8.1
8.2
8.3
8.4
9
179
180
182
184
185
187
189
192
Neues in Python 3 .................................................................... 195
7.1
8
Was ist OOP? ..............................................................................
Klassen, Objekte und eigene Methoden .......................................
Konstruktor und Destruktor .........................................................
Besondere Methoden ..................................................................
Operatormethoden ......................................................................
Referenz, Identität und Kopie ......................................................
Vererbung ...................................................................................
Mehrfachvererbung .....................................................................
Datum und Zeit ...........................................................................
8.1.1 Spielen mit Zeitangabe ....................................................
8.1.2 Aktuelle Zeit ausgeben ....................................................
8.1.3 Zeitangabe erzeugen .......................................................
8.1.4 Mit Zeitangaben rechnen ................................................
8.1.5 Programm anhalten .........................................................
8.1.6 Spiel, Version mit Zeitmessung ........................................
Modul collections ........................................................................
Multithreading ............................................................................
8.3.1 Wozu dient Multithreading? ...........................................
8.3.2 Erzeugung eines Threads .................................................
8.3.3 Identifizierung eines Threads ...........................................
8.3.4 Gemeinsame Objekte ......................................................
8.3.5 Threads und Exceptions ..................................................
Reguläre Ausdrücke .....................................................................
8.4.1 Suchen von Teiltexten .....................................................
8.4.2 Ersetzen von Teiltexten ...................................................
199
199
199
203
204
206
208
209
212
212
212
213
215
216
218
218
222
Dateien ..................................................................................... 225
9.1
9.2
Dateitypen ................................................................................... 225
Öffnen und Schließen einer Datei ................................................ 226
9
1406.book Seite 10 Donnerstag, 5. März 2009 1:08 13
Inhalt
9.3
9.4
9.5
9.6
9.7
9.8
9.9
Sequenzielle Dateien ...................................................................
9.3.1 Sequenzielles Schreiben ..................................................
9.3.2 Sequenzielles Lesen .........................................................
9.3.3 CSV-Datei schreiben .......................................................
9.3.4 CSV-Datei lesen ..............................................................
Dateien mit festgelegter Struktur .................................................
9.4.1 Formatiertes Schreiben ....................................................
9.4.2 Lesen an beliebiger Stelle ................................................
9.4.3 Schreiben an beliebiger Stelle ..........................................
Modul pickle ...............................................................................
9.5.1 Objekte in Datei schreiben ..............................................
9.5.2 Objekte aus Datei lesen ..................................................
Bearbeitung mehrerer Dateien .....................................................
Informationen über Dateien .........................................................
Dateien und Verzeichnisse verwalten ...........................................
Spiel, Version mit Highscore-Datei ...............................................
9.9.1 Eingabebeispiel ...............................................................
9.9.2 Aufbau des Programms ...................................................
9.9.3 Code des Programms ......................................................
227
227
229
234
236
237
238
239
241
242
242
244
246
247
248
249
250
250
251
10 Internet .................................................................................... 257
10.1
10.2
10.3
10.4
10
Laden und Senden von Internetdaten ..........................................
10.1.1
Lokaler Webserver .......................................................
10.1.2
Daten lesen ..................................................................
10.1.3
Daten kopieren ............................................................
10.1.4
Daten senden per GET .................................................
10.1.5
Daten senden per POST ...............................................
Webserver-Programmierung ........................................................
10.2.1
Erstes Programm ..........................................................
10.2.2
Beantworten einer Benutzereingabe .............................
10.2.3
Formularelemente mit mehreren Werten .....................
10.2.4
Typen von Formularelementen .....................................
Browser aufrufen .........................................................................
Spiel, Version für das Internet ......................................................
10.4.1
Eingabebeispiel ............................................................
10.4.2
Aufbau des Programms ................................................
10.4.3
Code des Programms ...................................................
257
257
258
261
261
264
267
267
268
272
274
280
281
281
283
284
1406.book Seite 11 Donnerstag, 5. März 2009 1:08 13
Inhalt
11 Datenbanken ............................................................................ 291
11.1
11.2
11.3
Aufbau von Datenbanken ............................................................
SQLite .........................................................................................
11.2.1
Datenbank, Tabelle und Datensätze .............................
11.2.2
Daten anzeigen ............................................................
11.2.3
Daten auswählen, Operatoren .....................................
11.2.4
Operator like ...............................................................
11.2.5
Sortierung der Ausgabe ................................................
11.2.6
Auswahl nach Eingabe .................................................
11.2.7
Datensätze ändern .......................................................
11.2.8
Datensätze löschen ......................................................
SQLite auf dem Webserver ..........................................................
291
292
292
295
296
298
300
301
303
305
306
12 Benutzeroberflächen ................................................................ 309
12.1
12.2
12.3
Einführung ...................................................................................
12.1.1
Eine erste GUI-Anwendung ..........................................
12.1.2
Ändern von Eigenschaften ............................................
Widget-Typen ..............................................................................
12.2.1
Anzeigefeld, Label ........................................................
12.2.2
Einzeilige Textbox, Entry ..............................................
12.2.3
Versteckte Eingabe ......................................................
12.2.4
Mehrzeilige Textbox, Text ............................................
12.2.5
Scrollende Textbox, ScrolledText ..................................
12.2.6
Listbox mit einfacher Auswahl ......................................
12.2.7
Listbox mit mehrfacher Auswahl ..................................
12.2.8
Scrollbar, scrollende Widgets .......................................
12.2.9
Radio-Buttons zur Auswahl, Widget-Variablen .............
12.2.10 Radio-Buttons zur Auswahl und Ausführung ................
12.2.11 Check-Buttons zur mehrfachen Auswahl ......................
12.2.12 Schieberegler, Scale .....................................................
12.2.13 Mausereignisse ............................................................
12.2.14 Tastaturereignisse ........................................................
Geometrische Anordnung von Widgets ........................................
12.3.1
Frame-Widget, Methode pack() ...................................
12.3.2
Ein einfacher Taschenrechner .......................................
12.3.3
Methode grid() ............................................................
12.3.4
Methode place(), absolute Koordinaten .......................
309
310
311
313
313
316
318
320
322
323
325
327
329
331
333
335
338
341
343
343
346
351
353
11
1406.book Seite 12 Donnerstag, 5. März 2009 1:08 13
Inhalt
12.4
12.3.5
Methode place(), relative Koordinaten .........................
12.3.6
Absolute Veränderung von Koordinaten ......................
12.3.7
Relative Veränderung von Koordinaten ........................
Menüs und MessageBoxes ...........................................................
12.4.1
Menüleisten .................................................................
12.4.2
Kontextmenüs .............................................................
12.4.3
MessageBoxes ..............................................................
355
357
359
363
363
368
372
13 Lösungen .................................................................................. 379
Index ............................................................................................................ 387
12
1406.book Seite 17 Donnerstag, 5. März 2009 1:08 13
2
Erste Schritte
In diesem Kapitel werden Sie Python zum ersten Mal einsetzen –
zunächst als Taschenrechner. Außerdem lernen Sie, ein Programm einzugeben, zu speichern und auszuführen.
2.1
Python als Taschenrechner
Sie können Python zunächst wie einen einfachen Taschenrechner benutzen. Dies erleichtert Ihnen den Einstieg in Python.
2.1.1
Eingabe von Berechnungen
Rufen Sie (unter Windows Vista oder XP) über Start 폷 (Alle) Programme
폷 Python 3.0 폷 IDLE (Python GUI) die nachfolgend dargestellte Entwicklungsumgebung IDLE für Python auf. Sie wird auch Python Shell
genannt und kann sowohl als Editor zur Eingabe der Programme als auch
als einfacher Taschenrechner genutzt werden.
Python Shell
Abbildung 2.1 Python-Entwicklungsumgebung IDLE
Zur Durchführung kleinerer Berechnungen müssen keine vollständigen
Programme geschrieben und gestartet werden. Man kann die gewünschten Rechenoperationen direkt an der Eingabestelle, erkennbar an den
Zeichen >>>, eingeben. Eine abschließende Betätigung der Taste (¢)
führt zur unmittelbaren Berechnung und Ausgabe des Ergebnisses.
17
Kleinere
Berechnungen
1406.book Seite 18 Donnerstag, 5. März 2009 1:08 13
2
Erste Schritte
Die dabei angewendeten Rechenregeln finden auch bei der Erstellung
von Python-Programmen Verwendung. Es lohnt sich also eine genauere
Betrachtung.
2.1.2
Addition, Subtraktion und Multiplikation
Im Folgenden werden Eingabe, Verarbeitung und Ausgabe einiger einfacher Berechnungen dargestellt:
>>> 41 + 7.5
48.5
>>> 12 - 18
-6
>>> 7 * 3
21
Zur Erläuterung:
Operatoren +, -, *
왘
Der Reihe nach werden die Operatoren + (Addition), - (Subtraktion)
und * (Multiplikation) eingesetzt. Wenn Sie die Taste (¢) betätigen,
erscheint das Ergebnis jeweils in der Zeile darunter.
왘
Als Dezimalzeichen gilt der Punkt, wie bei der ersten Berechnung (41
+ 7.5 = 48.5) erkennbar.
2.1.3
Division, Ganzzahldivision und Modulo
Es folgen zwei Divisionsaufgaben:
>>> 22 / 8
2.75
>>> 22 / -8
-2.75
Zur Erläuterung:
Operator /
왘
Der Operator / dient zur normalen Division.
Seltener genutzt werden die beiden Operatoren für die Ganzzahldivision
und die Modulo-Berechnung.
Zunächst zwei Beispiele zur Ganzzahldivision:
>>> 22 // 8
2
>>> 22 // -8
-3
18
1406.book Seite 19 Donnerstag, 5. März 2009 1:08 13
Python als Taschenrechner
2.1
Zur Erläuterung:
왘
Der Operator // dient zur Ganzzahldivision.
왘
Bei einer Ganzzahldivision wird das Ergebnis berechnet, indem
Operator //
왘
zunächst das exakte Ergebnis inklusive etwaiger Nachkommastellen ermittelt wird und
왘
anschließend die nächstkleinere ganze Zahl ermittelt wird.
Ein Beispiel zum Operator % (Modulo):
Operator %
22 % 8
6
Zur Erläuterung:
왘
Mit dem Operator % wird der Rest einer Ganzzahldivision berechnet.
왘
Die Ganzzahldivision »22 durch 8« ergibt »2 Rest 6«. Der ModuloOperator liefert also den Rest 6.
2.1.4
Rangfolge und Klammern
Es gilt, wie in der Mathematik, Punkt- vor Strichrechnung. Multiplikation und Division haben also Vorrang vor Addition und Subtraktion. Das
Setzen von Klammern führt dazu, dass die Ausdrücke innerhalb der
Klammern zuerst berechnet werden. Die folgenden Beispiele verdeutlichen die Rangfolge der Operatoren:
>>> 7 + 2 * 3
13
>>> (7 + 2) * 3
27
Listing 2.1 Rangfolge der Operatoren
Zur Erläuterung: Bei der ersten Rechnung werden zunächst 2 und 3 multipliziert, anschließend wird 7 addiert. Bei der zweiten Rechnung werden
zunächst 7 und 2 addiert, anschließend wird mit 3 multipliziert.
Übung U0201
Es wird vorausgesetzt, dass Python wie angegeben installiert wurde. Rufen Sie
die Entwicklungsumgebung IDLE auf. Ermitteln Sie die Ergebnisse der folgenden vier Aufgaben:
19
Rangfolge
1406.book Seite 20 Donnerstag, 5. März 2009 1:08 13
2
Erste Schritte
왘
12
13 – 5 · 2 + ------6
왘
7
5
-- – -2
4
왘
12
– 5 ⋅ 2----------------------4
왘
1 4 + 3-⎞ ⋅ 2
⎛1
⎝ --2- – --4- + -----------8 ⎠
Die Lösungen aller Übungsaufgaben finden Sie im Anhang dieses Buchs.
2.1.5
Variablen und Zuweisung
Variablen
zuweisen
Bisher wurde nur mit Zahlen gerechnet. Python kann, wie jede andere
Programmiersprache auch, Zahlen in Variablen speichern, falls sie im
Verlauf einer Berechnung mehrmals benötigt werden.
Dezimalpunkt
Dies soll bei der Umrechnung einer Entfernungsangabe von englischen
Meilen in Kilometer gezeigt werden. Für die Umrechnung gilt: 1 Meile =
1609,344 Meter = 1,609344 Kilometer. Beachten Sie, dass Nachkommastellen mit einem Dezimalpunkt abgetrennt werden.
>>> mi = 1.609344
>>> 2 * mi
3.2186880000000002
>>> 5 * mi
8.0467200000000005
>>> 22.5 * mi
36.210239999999999
>>> 2.35 * mi
3.7819584000000006
Zur Erläuterung:
Variable
왘
Der Umrechnungsfaktor wird zunächst in der Variablen mi gespeichert. Auf diese Weise können mehrere Umrechnungen einfacher
nacheinander durchgeführt werden. Anschließend werden die entsprechenden Kilometerwerte für 2 Meilen, 5 Meilen, 22,5 Meilen
und für 2,35 Meilen berechnet und ausgegeben.
Zuweisung
왘
Die Speicherung des Umrechnungsfaktors geschieht mit einer Zuweisung (mi = 1.609344). Folglich erhält die Variable mi den Wert, der
rechts vom Gleichheitszeichen steht (1.609344).
20
1406.book Seite 21 Donnerstag, 5. März 2009 1:08 13
Erstes Programm
Zwei Hinweise
2.2
Runden
1. In Python-Variablen können ganze Zahlen, Zahlen mit Nachkommastellen,
Zeichenketten (also Texte) und andere Objekte eines Programms mithilfe
von Zuweisungen gespeichert werden.
2. Es ist üblich, den Wert in Kilometer so auszugeben, dass auf drei Stellen
hinter dem Komma gerundet wird, also auf den Meter genau. Auf eine solche formatierte Ausgabe wird später noch eingegangen.
Der Name einer Variablen kann unter Befolgung der folgenden Regeln
weitgehend frei gewählt werden:
왘
Er kann aus den Buchstaben a bis z, A bis Z, Ziffern oder dem Zeichen
_ (= Unterstrich) bestehen.
왘
Er darf nicht mit einer Ziffer beginnen.
왘
Er darf keinem reservierten Wort der Programmiersprache Python
entsprechen. Eine Liste der reservierten Wörter finden Sie auf der
vorderen Außenklappe.
왘
Die Groß- und Kleinschreibung ist zu beachten: Namen und Anweisungen müssen stets exakt wie vorgegeben geschrieben werden. Die
Namen mi und Mi bezeichnen also verschiedene Variablen.
Variablennamen
Case sensitive
Übung U0202
Für das englische Längenmaß Inch gilt folgende Umrechnung: 1 Inch entspricht 2,54 Zentimetern. Berechnen Sie für die folgenden Angaben den Wert
in Zentimeter: 5 Inch, 20 Inch und 92,7 Inch. Vereinfachen Sie Ihre Berechnungen, indem Sie den Umrechnungsfaktor zunächst in einer Variablen speichern.
2.2
Erstes Programm
Es soll ein erstes Python-Programm eingegeben, abgespeichert und aufgerufen werden. Dieser Vorgang wird im Folgenden ausführlich erklärt.
Die einzelnen Schritte sind später analog bei jedem Python-Programm
auszuführen.
2.2.1
Hallo Welt
Die Ausgabe Ihres ersten Python-Programms soll lauten:
Hallo Welt
21
Eingabe, Verarbeitung, Ausgabe
1406.book Seite 387 Donnerstag, 5. März 2009 1:08 13
Index
- (Minus)
Set 117
Subtraktion 18
!= 38
# 27
#!/usr/bin/python 27
$_GET 263
$_POST 266
% (Prozent)
Format 142, 197
Modulo 19, 83
%= 133
& 117
' 86
* (Stern)
Multiplikation 18
Parameter 161
Vervielfachung 87, 100
** 80
**= 132
*= 132
+ (Plus)
Addition 18
Verkettung 87, 100
+= 132
. 67
/ 18
// 19
//= 133
/= 133
: (Doppelpunkt) 38, 56
<
Format 143
Python 38
Set 116
SQL 298
<=
Python 38
Set 116
SQL 298
<>
Python 196
SQL 298
-= 132
=
Python 20, 32
SQL 298
== 38, 114, 125
>
Format 143
Python 38
Set 116
SQL 298
>=
Python 38
Set 116
SQL 298
[ ], Dictionary 110
^ 117
__add__() 186
__cmp__() 196
__del__() 184
__eq__() 186
__floordiv__() 186
__ge__() 186
__gt__() 186
__init__() 183
__le__() 186
__lt__() 186
__mod__() 186
__mul__() 186
__ne__() 186
__pow__() 186
__str__() 184
__sub__() 186
__truediv__() 186
_thread
get_ident() 214
Modul 212
start_new_thread() 212
{}
Dictionary 110
Formatierung 141
| 117
100-Dollar-Laptop 14
2to3 197
387
1406.book Seite 388 Donnerstag, 5. März 2009 1:08 13
Index
A
abs() 86
add() 116
add_cascade() 368
add_checkbutton() 368
add_command() 367
add_radiobutton() 367
add_separator() 367
Aktionsabfrage (Datenbank) 294
anchor 313
and 42
AND (SQL) 298
Antwort-Box (GUI) 372
Anweisung
ausführen 137
leere 135
Anzahl
Elemente 89
Teiltexte 92
Anzeigefeld (GUI) 313
Apache-Webserver 258
append() 104, 211
appendleft() 211
argv
sys 176
Array 98
as 160
ASCII-Zeichen 97
askokcancel() 372
Ausdruck auswerten 137
Ausgabe formatieren 140
Ausnahme 58
Thread 216
Ausnahmebehandlung 60
Ausrichtung (GUI) 313
Auswahlabfrage (Datenbank) 296
Auswahlmenü
einfaches (GUI) 323
mehrfaches (GUI) 325
Auswahlmenü (HTML) 275
B
b
Format 144
Prefix 97
Basisverzeichnis 258
Bedingter Ausdruck 144
388
Bedingung 37, 56, 120
verknüpfen 42
Benannter Parameter 162, 196
Benutzeroberfläche 309
Betrag 86
bg 313
Bild einbinden (GUI) 313
Bild-Widget 316
bin() 78
Binärdaten 97
bind() 340, 342
Bogenmaß 82
bool 120
borderwidth 313
break 48
Breakpoint 157
Breite (GUI) 313
Browser 259
aufrufen 280
Bruch 83
annähern 85
Button
tkinter 311
Button-Widget 311
Byte-Literal 97, 261
bytes 97
C
callback (GUI) 311
Carriage Return 97
cgi
FieldStorage 270
Modul 267, 270
cgi-bin 267, 269
CGI-Skript 267
Standardverzeichnis 269
cgitb
enable() 270
Modul 270
checkbox (HTML) 277
Checkbutton-Widget 333
checked (HTML) 277
chr() 172
class 180
clear() 116
close() 227
connection 295
cmd 24
1406.book Seite 389 Donnerstag, 5. März 2009 1:08 13
Index
collections
deque() 211
Modul 209
command 311, 331, 335
Comma-separated Values 234
commit()
connection 294
Compiler 14
Conditional Expression 144
configure() 312
connect()
sqlite3 294
connection
close() 295
commit() 294
cursor() 294
sqlite3 294
Content-type 268
continue 63
copy
deepcopy() 128, 187
Modul 128, 187
copy() 116
copyfile()
shutil 249
cos()
math 82
count() 104
str 92
CREATE TABLE (SQL) 294
CSV-Datei 234
cursor
execute() 294
sqlite3 294
cursor()
connection 294
D
d (Format) 144
Datei
Eigenschaften 247
Ende erkennen 231
festgelegte Struktur 237
formatierte Ausgabe 238
Größe 248
kopieren 249
lesen 229
lesen und schreiben 241
Datei (Forts.)
Liste erstellen 246
öffnen 226
Position verändern 239
schließen 227
schreiben 227
Speicherung 225
Typ 225
umbenennen 249
verwalten 248
Zugriffszeitpunkt 248
Dateiendung
.csv 234
.py 22
Dateizugriff
binärer 225
sequenzieller 225
wahlfreier 225
Datenbank 291
erzeugen 292
im Internet 306
Verbindung herstellen 294
Datenbankmanagement-System 292
Datensatz (Datenbank) 291
ändern 303
anlegen 292, 294
anzeigen 295
auswählen 296
sortieren 300
Datensatzcursor (Datenbank) 294
Datentyp
bool 120
bytes 97
Datenbank 291
deque 209
ermitteln 83
float 79
FLOAT (SQL) 292
int 77
INTEGER (SQL) 292
long 196
NoneType 123
spezieller 209
str 86
TEXT (SQL) 292
Datum und Zeit 199
Differenz 204
erzeugen 203
formatieren 199, 201
389
1406.book Seite 390 Donnerstag, 5. März 2009 1:08 13
Index
Datum und Zeit (Forts.)
Nullpunkt 199
Debug Control 154
Debug Off 157
Debug On 154
Debugger 154
deepcopy()
copy 128, 187
def 67
Klassenmethode 180
del 101, 127
del() 111
DELETE (SQL) 305
denominator 85
deque 209
deque()
collections 211
Deserialisierung 242
Destruktor 182
dezimale Zahl 77
Dezimalformat 144
Dezimalzeichen 18
Dictionary 109
aktualisieren 111
Element löschen 111
Elementexistenz 111
erzeugen 110
Funktionen 110
leeres 120
vergleichen 113
View 111
Differenzmenge 118
discard() 116
Doppelpunkt 89
double-ended queue 209
DoubleVar 331
Duale Zahl 77
Dualformat 144
dump()
pickle 242
Eingabe
kommentierte 134
nicht sinnvolle 159
versteckte (GUI) 318
versteckte (HMTL) 275
wiederholen 62
Zeichenkette 33, 87
Eingabe, Verarbeitung, Ausgabe 34
Eingabefeld
einzeilig (GUI) 316
HTML 275
mehrzeiliges (GUI) 320
scrollbares (GUI) 322
Eingebaute Funktion 170
Einrücken 56
doppelt 49
Einzelschrittverfahren 154
elif 41
else 39, 41
Elternelement (GUI) 343
enable()
cgitb 270
end 138
Endlosschleife 120, 309
endswith()
str 94
Entry-Widget 316
Escape-Sequenz 97
eval() 137
Excel 235
except 60, 158
exec() 137
execute()
cursor 294
exit 25
exit()
sys 310
Exponentialformat 142
extend() 211
extendleft() 211
E
F
e
f (Format) 142
falsch 120
False 120
Fehler 58, 151
abfangen 60, 61
erzeugen 158
Eulersche Zahl 82
Exponentialschreibweise 79
Format 142
Eigenschaft 180
Eindeutiger Index (Datenbank) 293, 305
390
1406.book Seite 391 Donnerstag, 5. März 2009 1:08 13
Index
Fehler (Forts.)
im Browser anzeigen 271
Laufzeitfehler 153
logischer 154
Nachricht (GUI) 372
Syntaxfehler 152
Unterscheidung 159
Feld (Datenbank) 291
fg 313
FieldStorage
cgi 270
value 271
filter() 148
find()
str 92
findall()
re 218
Fließkommazahl 79
float 79
FLOAT (SQL) 292
float() 34, 94
font 313
for 47
form (HTML) 263
format() 140, 239
Fraction()
fractions 84
fractions
Fraction() 84
gcd() 85
Modul 83
Frame-Widget 343
from 175
Frozenset 119
frozenset() 119
Funktion 65
Aufruf 67
beenden 70
benannter Parameter 162
Definition 67
eingebaute 170
mehrere Rückgabewerte 164
Mehrfachaufruf 146
Name 67
Parameter, ein 68
Parameter, mehrere 69
Parameterübergabe 165
Parametervoreinstellung 163
Rückgabewert 70
Funktion (Forts.)
trigonometrische 82
überspringen 156
variable Parameteranzahl 161
verlassen 157
G
Ganze Zahl 77
Ganzzahldivision
Rest 19
Ganzzahligkeit ermitteln 83
gcd()
fractions 85
Geometriemanager (GUI) 311, 343, 351,
353
geometry() 372
gesetzt 61
get() 317, 325, 331
get_ident()
_thread 214
GET-Methode 263
Gleich
in Python 38
in SQL 298
glob()
glob 246
global 168
Graphical User Interface 309
grid() 351
Groß- und Kleinschreibung 21
Größter gemeinsamer Teiler 85
GUI-Anwendung 309
H
Haltepunkt 157
has_key() 197
Header 268
height 313
hex() 78
hexadezimale Zahl 77
Hexadezimalformat 144
Hintergrundfarbe (GUI) 313
Höhe (GUI) 313
htdocs 258
HTML
Datei kopieren 261
Datei lesen 259
391
1406.book Seite 392 Donnerstag, 5. März 2009 1:08 13
Index
HTML (Forts.)
Formular 269
Formulardaten 270
Formularelement 272
lernen 259
http 258
I
Identität 126
IDLE 17, 154
if 38
image 313
import 37, 175
in
Dictionary 111
Element-View 113
for 47
Key-View 113
Liste 100
Sequenz 88
Set 115
Werte-View 112
Index einer Sequenz 89
index() 104
Info-Nachricht (GUI) 372
input (HTML) 263
input() 26, 33, 134
INSERT INTO (SQL) 294
insert() 103, 321, 324
Instanz 181
int 77
int() 34, 80, 94
INTEGER (SQL) 292
Internet 257
Daten lesen 259
Daten senden 261, 264
Datenbank im 306
Interpreter 14
IntVar 331
is 125, 188
items() 113
Iterable 145
filtern 148
verbinden 146
Iterierbares Objekt 145
392
J
Ja/Nein-Box (GUI) 372
K
Kalenderwoche 201
keys() 113
Klammersetzung 19
Klasse 179
abgeleitete 189
Basisklasse 189
Definition 180
Kommandozeile 24, 176
Kommentar 27
Konstruktor 182
Kontextmenü (GUI) 368
Kontrollkästchen
GUI 333
HTML 275
Kontrollstruktur
geschachtelt 48
Kopfrechnen 31
L
Label-Widget 313
Lambda 169
Lange Ausgaben 28
Laufzeitfehler 153
Layoutmanager (GUI) 343
len() 89
like (SQL) 298
limit_denominator() 85
Line Feed 97
Linksbündig 143
Linux 14
List Comprehension 149
Listbox-Widget 323, 325
Liste 98
Anzahl bestimmter Elemente 104
eingebettete 99
Element anfügen 104
Element einfügen 103
Element löschen 101, 104
filtern 149
leere 120
mehrdimensionale 99
Operation 101
1406.book Seite 393 Donnerstag, 5. März 2009 1:08 13
Index
Liste (Forts.)
Position ermitteln 104
sortieren 104
umdrehen 104
load()
pickle 244
localhost 258
localtime()
time 199
logischer Fehler 154
logischer Operator 42
lokaler Namensraum 168
lokaler Webserver 257
long 196
Lösungen 15
M
mainloop()
Tk 311
map() 146
math
cos() 82
e 82
Modul 82
pi 82
sin() 82
tan() 82
Maus-Ereignis (GUI) 338
max() 171
Maximum 171
Menge 114
Differenzmenge 118
Element hinzufügen 116
Element löschen 116
kopieren 116
leere 120
leeren 116
Schnittmenge 118
Teilmenge 116
Vereinigungsmenge 118
Menu
tkinter 363
Menü
Debug 154
File 22
Run 24
Menü (GUI) 363
abtrennen 367
Menüleiste (GUI) 363
messagebox
tkinter 372
Methode 180
besondere 184
min() 171
Minimum 171
mktime()
time 203
Modul
_thread 212
cgi 267, 270
cgitb 270
collections 209
copy 128, 187
eigenes 174
einbinden 37, 175
fractions 83
glob 246
math 82
os 247, 248
random 37
re 218
shutil 248
sqlite3 292
sys 310
tkinter 310
tkinter.messagebox 372
tkinter.scrolledtext 323
urllib 257
urllib.parse 257
urllib.request 257
webbrowser 280
Modularisierung 65, 174
Monatsname 201
multiple (HTML) 277
Multithreading 212
N
Nachkommastellen, Anzahl 140
Nachrichtenbox (GUI) 372
Namensraum 168
Nenner eines Bruchs 85
NICHT
logisches (SQL) 298
nicht
logisches (Python) 42
Nichts 123
393
1406.book Seite 394 Donnerstag, 5. März 2009 1:08 13
Index
None 123
NoneType 123
not 42
NOT (SQL) 298
numerator 85
O
o (Format) 144
Objekt 77, 180
aus Datei lesen 244
ausgeben 184
erzeugen 181
Identität 188
in Datei schreiben 242
kopieren 128, 187
Referenz 125, 187
Typ ermitteln 83
vergleichen 186
Objektorientierte Programmierung 179
oct() 78
Oder, logisches (Python) 42
ODER, logisches (SQL) 298
offvalue 335
Ok/Abbrechen-Box (GUI) 372
Oktale Zahl 77
Oktalformat 144
Online-Bestellung 274
onvalue 335
OOP 179
open()
Datei 226
webbrowser 280
Operator
für Sequenzen 88
logischer 42
mehrere Vergleichsoperatoren 44
Rangfolge 19, 46
Rechenoperator 80, 186
Vergleichsoperator 38, 186
Verkettung 88
Vervielfachung 88
Operatormethode 185
Optionsfeld (GUI) 329
or 42
OR (SQL) 298
ord() 172
ORDER BY (SQL) 300
394
os
Modul 247, 248
rename() 249
stat() 247
Out 157
Over 156
P
pack() 311
Parallele Verarbeitung 212
Parameter 68, 69
benannter 162, 196
variable Anzahl 161, 196
Voreinstellung 163
partition()
str 94
pass 135
password (HTML) 277
Passworteingabe
GUI 318
HTML 275
PhotoImage
tkinter 316
PHP 258, 262
pi
math 82
pickle 242
dump() 242
load() 244
place() 353, 355, 357, 359
pop() 211
popleft() 211
Position Teiltext 92
POST-Methode 265
PRIMARY KEY (SQL) 294, 305
print() 22, 138
mehrere Ausgaben 28
Programm
abbrechen 157
Abbruch vermeiden 59
anhalten 26, 206
ausführen im Windows-Explorer 26
ausführen in IDLE 24
ausführen unter Linux 27
ausführen von Kommandozeile 24
beenden 310
eingeben 22
konvertieren 197
1406.book Seite 395 Donnerstag, 5. März 2009 1:08 13
Index
Programm (Forts.)
Parameter 176
Python
auf dem Webserver 268
installieren 16
Interpreter 268
Shell 17
starten 17
Version 3.0 195
python.exe 268
python.org 16
python-3.0.msi 16
Q
Quit 157
R
RAD 13
radio (HTML) 277
Radiobutton
GUI 329
HTML 275
Rahmen (GUI) 343
raise 158
Randart (GUI) 313
Randbreite (GUI) 313
randint()
random 37
random
Modul 37
randint() 37
seed() 37
range() 51
Rapid Application Development 13
raw_input() 196
re
findall() 218
Modul 218
sub() 222
read() 229
readline() 229
readlines() 229
Rechenregel 18
Rechtsbündig 143
Referenz 125, 187
löschen 127
übergeben 166
Regulärer Ausdruck 218
relief 313
remove() 104
rename()
os 249
replace()
str 93
Reset-Button (HTML) 275
return 70
mehrere Werte 165
reverse() 104
reversed() 173
rfind()
str 92
rotate() 211
round() 80
rpartition()
str 94
Rückgabewert 70, 123
mehrere 164
Run Module 24, 155
Runden 80
RuntimeError 160
S
Scale-Widget 335
Schaltfläche (GUI) 311
Schieberegler (GUI) 335
Schleife 47
Abbruch 48
Durchlauf abbrechen 63
for 47
while 56
Schlüssel-Wert-Kombination 109
Schnittmenge 118
Schrift (GUI) 313
Scrollbalken (GUI) 327
Scrollbar
tkinter 328
Scrollbar-Widget 327
ScrolledText()
tkinter.scrolledtext 323
ScrolledText-Widget 322
Scrollen (GUI) 322
seed()
random 37
seek() 239
select (HTML) 277
395
1406.book Seite 396 Donnerstag, 5. März 2009 1:08 13
Index
SELECT (SQL) 296
selected (HTML) 277
self 181
Selfhtml 259
Sendebutton (HTML) 275
sep 138
Separator 138
Sequenz 86
Index 89
Operatoren 88
Teilbereich 89
umdrehen 173
Serialisierung 242
Set 114
unveränderliches 119
set() 115
GUI 328, 331
Set-Literal 196
show 318
show() 372
showerror() 372
showinfo() 372
showwarning() 372
shutil
copyfile() 249
Modul 248
sin()
math 82
sleep()
time 206
Slice 89
sort() 104
sorted() 173
Sortieren 173
Spiel, Kopfrechnen 31
split()
str 94
SQL 292
SQL-Befehl senden 294
SQLite 292
sqlite3
connect() 294
connection 294
cursor 294
Modul 292
start_new_thread()
_thread 212
startswith()
str 94
396
stat()
os 247
Step 155
str
count() 92
Datentyp 86
endswith() 94
find() 92
partition() 94
replace() 93
rfind() 92
rpartition() 94
split() 94
startswith() 94
str() 96
strftime()
time 201
String 86
leerer 120
StringVar 331
sub()
re 222
Suchen und Ersetzen 218
sum() 171
Summe 171
Syntaxfehler 152
sys
argv 176
exit() 310
Modul 310
T
Tabelle (Datenbank) 291
anlegen 292, 294
tan()
math 82
Taschenrechner 17
Tastatur-Ereignis (GUI) 338
Taste F5 24, 155
Teilbereich einer Sequenz 89
Teilmenge 116
Teiltext ersetzen 93
TEXT (SQL) 292
text/html 268
Text-Area (HTML) 277
Text-Widget 320
Thread 212
Ausnahme 216
1406.book Seite 397 Donnerstag, 5. März 2009 1:08 13
Index
Thread (Forts.)
globale Daten 215
Identifikation 213
time 199
localtime() 199
mktime() 203
sleep() 206
strftime() 201
time() 199
time()
time 199
Tk
Interface 309
mainloop 311
tkinter 310
tkinter
Button 311
Menu 363
messagebox 372
Modul 310
PhotoImage 316
Scrollbar 328
Tk 310
tkinter.messagebox
askokcancel() 372
askretrycancel() 372
askyesno() 372
Modul 372
show() 372
showerror() 372
showinfo() 372
showwarning() 372
tkinter.scrolledtext
ScrolledText() 323
True 120
try 60, 158
Tupel 104
entpacken 108
leeres 120
mehrdimensionales 105
verpacken 108
type() 83
U
Übungsaufgabe 15
Umlaut 97
Umrechnung
in dual 78
Umrechnung (Forts.)
in hexadezimal 78
in oktal 78
Umwandlung
in ganze Zahl 80
in Zahl 34, 94
in Zeichenkette 96
Und, logisches (Python) 42
UND, logisches (SQL) 298
Ungleich
Python 38
SQL 298
Unicode 172
Literal 196
unique (SQL) 305
UPDATE (SQL) 303
update() 111
urlencode()
urllib.parse 266
urllib
Modul 257
urllib.parse
Modul 257
urlencode() 266
urllib.request
Modul 257
urlopen() 260
urlretrieve() 261
urlopen()
urllib.request 260
urlretrieve()
urllib.request 261
V
value, FieldStorage 271
ValueError 59
values() 112
Variable 20, 32
kontrollieren 156
Name 21
Vereinigungsmenge 118
Vererbung 189
Mehrfachvererbung 192
Vergleichsoperator 38
Verzeichnis verwalten 248
Verzweigung 37
einfach 38
mehrfache 40
397
1406.book Seite 398 Donnerstag, 5. März 2009 1:08 13
Index
View 111
Vordergrundfarbe (GUI) 313
Vorzeichen 46
W
Wagenrücklauf 97
Wahr 120
Wahrheitswert 120
Wahrheitswerttabelle 42
Warnungs-Nachricht (GUI) 372
Webbrowser 259
webbrowser
Modul 280
open() 280
Webserver 257
Programmierung 267
while 56
while(True) 120
Widget 309
add_cascade() 368
add_checkbutton() 368
add_command() 367
add_radiobutton() 367
add_separator() 367
anchor 313
anordnen 343, 351, 353, 355
Bewegung 357, 359
bg 313
bind() 340, 342
borderwidth 313
command 311, 331, 335
configure() 312
DoubleVar 331
Eigenschaften ändern 311
Ereignis 340
fg 313
font 313
geometry() 372
get() 317, 325, 331
grid() 351
Größe, Ort 372
height 313
image 313
insert() 321, 324
IntVar 331
offvalue 335
onvalue 335
pack() 311
398
Widget (Forts.)
place() 353, 355, 357, 359
relief 313
scrollbares 327
set() 328, 331
show 318
StringVar 331
Variable 329
width 313
yview() 328
width 313
Wiederholen/Abbrechen-Box (GUI) 372
Wiederholung 47
Windows 14
Wochentagsname 201
write() 227
writelines() 227
X
x (Format) 144
Xampp 258
Control Panel 258
Y
yview() 328
Z
Zahl 77
als Bruch annähern 85
ganze 77
mit Nachkommastellen 79
Zahlensystem 77
Zähler eines Bruchs 85
Zeichenkette 86
beginnt mit 94
Eingabe 87
endet mit 94
mehrzeilig 87
partitionieren 94
zerlegen 94
Zeilenende 138
Zeilenumbruch in Code 133
Zeilenvorschub 97
Zeitzone 201
zip() 146
1406.book Seite 399 Donnerstag, 5. März 2009 1:08 13
Index
Zufallszahl
Generator 36
Generator initialisieren 37
liefern 37
Zuweisung 20, 32
kombinierte Operatoren 131
mehrfache 106
399
Herunterladen