Upload
woddibz
View
63
Download
0
Embed Size (px)
Citation preview
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 1/15
Auf einen Blick
1 Einführung .................... ................... .................... ................. 13
2 Erste Sch ritte ........................................................................ 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
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 2/15
Inhalt
1 Einführung ..................................... ....................................... .... 13
1.1 Vorteile von Python ..................................................................... 131.2 Verbrei tung von Python ............................................................... 14
1.3 Aufbau des Buchs ........................................................................ 14
1.4 Übungen ..................................................................................... 15
1.5 Installation von Python ................................................................ 16
2 Erste Schritte .......................................... ................................. 172.1 Python als Taschenrechner ........................................................... 17
2.1.1 Eingabe von Berechnungen ....... ........ ....... ....... ....... ....... .. 17
2.1.2 Addition, Subtraktion und Multiplikation ........................ 18
2.1.3 Division, Ganzzahldivision und Modulo ........................... 18
2.1.4 Rangfolge und Klammern ....... ....... ...... ....... ....... ....... ....... 19
2.1.5 Variablen und Zuweisung ................................................ 20
2.2 Erstes Programm .......................................................................... 21
2.2.1 Hallo Welt ...................................................................... 21
2.2.2 Eingabe eines Programms ....... ....... ....... ........ ....... ....... ..... 22
2.3 Speichern und Ausführen ....... ...... ....... ....... ...... ....... ...... ....... ....... . 22
2.3.1 Speichern ........................................................................ 22
2.3.2 Ausführen unter Windows .............................................. 23
2.3.3 Ausführen unter Linux ..................................................... 27
2.3.4 Kommentare................................................................... 27
2.3.5 Verkettung von Ausgaben ............................................... 28
2.3.6 Lange Ausgaben .............................................................. 28
3 Programmierkurs .......................................... ............................ 31
3.1 Ein Spiel programmieren .............................................................. 31
3.1.1 Das fertige Spiel .............................................................. 31
3.1.2 Der Weg zum fertigen Spiel............................................. 31
3.1.3 Mögliche Erweiterungen ................................................. 32
3.2 Variablen und Operatoren ........................................................... 32
3.2.1 Berechnung und Zuweisung ....... ....... ........ ....... ........ ....... 32
3.2.2 Eingabe einer Zeichen kette ........ ........ ........ ........ ........ ..... 33
3.2.3 Eingabe einer Zahl.............. ................... ................... ....... 33
3.2.4 Spiel, Version mit Eingabe ....... ........ ....... ....... ....... ....... .... 35
3.2.5 Zufallszahlen ................................................................... 36
5
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 3/15
Inhalt
3.3 Verzweigungen ............................................................................ 37
3.3.1 Vergleichsoperatoren ...................................................... 38
3.3.2 Einfache Verzweigung ....... ........ ....... ....... ....... ....... ....... ... 38
3.3.3 Spiel, Version mit Bewertung der Eingabe ......... .......... .... 39
3.3.4 Mehrfache Verzweigung .................................................. 40
3.3.5 Logische Operatoren ....... ....... ....... ....... ....... ....... ....... ...... 42
3.3.6 Mehrere Vergleichsoperatoren ........................................ 44
3.3.7 Spiel, Version mit genauer Bewertung der Eingabe .......... 45
3.3.8 Rangfolge der Operatoren ................ ......... ..... ................ . 46
3.4 Schleifen...................................................................................... 47
3.4.1 for-Schleife ..................................................................... 47
3.4.2 Schleifenabbruch mit break ............................................. 48
3.4.3 Geschachtelte I<ontrollstrukturen ........ ........ ........ ........ .... 48
3.4.4 Spiel, Version mit for-Schleife und Abbruch ...... ............. . 50
3.4.5 for-Schleife mit rangeO .................................................... 51
3.4.6 Spiel, Version mit rangeO ................................................ 54
3.4.7 while-Schleife ................................................................. 56
3.4.8 Spiel, Version mit while-Schleife und Zähler ............ ........ 57
3.5 Fehler und Ausnahmen ....... ....... ....... ...... ....... ....... ....... ...... ....... ... 58
3.5.1 Basisprogramm ...... ....... ...... ....... ...... ....... ...... ....... ...... ...... 58
3.5.2 Programmabbruch vermeiden ........ ........ ....... ........ ........ .. 59
3.5.3 Fehler abfangen ...... ....... ...... ....... ....... ....... ...... ....... ....... .. 61
3.5.4 Exkurs: Schleifenfortsetzung mit continue ....................... 62
3.5.5 Spiel, Version mit Ausnahmebehandlung ........................ 633.6 Funktionen und Module .............................................................. 65
3.6.1 Einfache Funktionen ...... ....... ....... ....... ....... ....... ....... ....... . 66
3.6.2 Funktionen mit einem Parameter ........ ......... ......... ......... . 68
3.6.3 Funktionen mit mehreren Parametern ........ ......... .......... .. 69
3.6.4 Funktionen mit Rückgabewert ......................................... 70
3.6.5 Spiel, Version mit Funktionen ......................................... 71
3.7 Das fertige Spiel........................................................................... 72
4 Datentypen .............................................................................. 77
4.1
6
Zahlen
4.1.1
4.1.2
Ganze Zahlen ................................................................. .
Zahlen mit Nachkommastelien ...................................... .
77
77
79
4.1.3 Operatoren..................................................................... 80
4.1.4 Rundung und I<onvertierung ...... ....... ....... ....... ....... ....... .. 80
4.1.5 Modul math .................................................................... 82
4.1.6 Brüche............................................................................ 83
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 4/15
Inhalt
4.2 Zeichenketten .............................................................................. 86
4.3
4.4
4.2.1 Eigenschaften.................................................................. 86
4.2.2 Operatoren ..................................................................... 87
4.2.3 Operationen ................................................................... 89
4.2.4 Funktionen..................................................................... 91
4.2.5 Umwandlung von Zeichenkette in Zahl........................... 94
4.2.6 Umwandlung von Zahl in Zeichenkette ........... ........... ..... 96
4.2.7 Datentyp bytes.................. ....................... ...................... . 97
Listen 98
4.3.1 Eigenschaften.................................................................. 98
4.3.2 Operatoren..................................................................... 100
4.3.3 Funktionen und Operationen .......................................... 101
Tupel
4.4.1
104
Eigenschaften .................................................................. 104
4.4.2 Operationen................................................................... 104
4.4.3 Tupel entpacken ............................................................. 106
4.5 Dictionarys .................................................................................. 109
4.5.1 Eigenschaften ....... ....... ...... ....... ...... ....... ...... ....... ....... ...... 109
4.5.2 Funktionen ..................................................................... 110
4.5.3 Views .............................................................................. 111
4.5.4 Vergleiche ....................................................................... 113
4.6 Mengen, Sets ............................................................................... 114
4.6.1 Eigenschaften ....... ....... ...... ....... ...... ....... ...... ....... ....... ...... 114
4.6.2 Funktionen ..................................................................... 115
4.6.3 Operatoren ..................................................................... 116
4.6.4 Frozenset ........................................................................ 119
4.7 Wahrheitswerte und Nichts ......................................................... 120
4.7.1 Wahrheitswerte True und False ....................................... 120
4.7.2 Nichts, None ................................................................... 123
4.8 Referenz, Identität und Kopie ...................................................... 125
4.8.1 Referenz und Identität .................................................... 125
4.8.2 Ressourcen sparen ...... ....... ....... ...... ....... ....... ....... ...... ..... 127
4.8.3 Objekte kopieren ............................................................ 128
5 Weiterführende Programmierung ............................................ 131
5.1 Allgemeines ................................................................................. 131
5.1.1 Kombinierte Zuweisungsoperatoren ........ ......... ........ ....... 131
5.1.2 Anweisung in mehreren Zeilen ....... ....... ....... ........ ....... .... 133
5.1.3 Eingabe mi t Hilfestellung ................................................ 134
7
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 5/15
Inhalt
5.1.4 Anweisung pass .............................................................. 135
5.1.5 Funktionen evalO und execO ........................................... 137
5.2 Ausgabe und Formatierung ...... ....... ....... ....... ...... ....... ....... ....... .... 138
5.2.1 Funktion printO ............................................................... 138
5.2.2 Formatierte Ausgabe ....... ........ ....... ....... ....... ........ ....... .... 140
5.3 Condit ional Expression ....... ........ ....... ....... ....... ....... ....... ....... ....... 144
5.4 Iterierbare Objekte ...................................................................... 145
5.4.1 Funktion zipO ...... ....... ....... ....... ....... ....... ...... ....... ....... ..... 146
5.4.2 Funktion mapO ............................................................... 146
5.4.3 Funktion filterO ............................................................... 148
5.5 List Comprehension ..................................................................... 149
5.6 Fehler und Ausnahmen ....... ....... ....... ...... ....... ....... ....... ...... ....... ... 151
5.6.1 Allgemeines .................................................................... 151
5.6.2 Syntaxfehler .................................................................... 152
5.6.3 Laufzeitfehler .................................................................. 1535.6.4 Logische Fehler und Debugging ....... ........ ........ ....... ........ 154
5.6.5 Fehler erzeugen ...... ....... ...... ....... ....... ....... ...... ....... ....... .. 158
5.6.6 Unterscheidung von Ausnahmen ..................................... 159
5.7 Funktionen .................................................................................. 161
5.7.1 Variable Anzahl von Parametern ....... ........ ........ ....... ........ 161
5.7.2 Benannte Parameter ....... ....... ....... ....... ........ ....... ....... ...... 162
5.7.3 Voreinstellung von Parametern ........ ........ ....... ........ ........ 163
5.7.4 Mehrere Rückgabewerte ................................................. 164
5.7.5 Übergabe von I<opien und Referenzen ... ................ ......... 165
5.7.6 Lokal, global ................................................................... 168
5.7.7 Lambda-Funktion ............................................................ 169
5.8 Eingebaute Funktionen ........ ....... ....... ....... ....... ....... ....... ....... ....... 170
5.8.1 Übersicht ........................................................................ 170
5.8.2 Funktionen maxO, minO und sumO ................................. 171
5.8.3 Funktionen chrO und ordO .............................................. 172
5.8.4 Funktionen reversedO und sortedO ........ ........ ......... ........ 173
5.9 Eigene Module ............................................................................ 174
5.9.1 Eigene Module erzeugen ................................................. 174
5.9.2 Eigene Module verwenden .............................................. 175
5.10 Parameter der I<ommandozeile ....... ....... ....... ....... ....... ....... ....... ... 176
5.10.1 Übergabe von Zeichenketten ........ ........ ........ ........ ........ ... 176
5.10.2 Übergabe von Zahlen .......... ........ ....... ....... ....... ....... ........ 177
5.10.3 Beliebige Anzahl von Parametern ........ ........ ........ ........ .... 177
8
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 6/15
Inhalt
6 Objektorientierte Program m erung ......................................... 179
6.1 Was ist OOP? ....... ...... ...... ....... ...... ....... ...... ...... ....... ...... ....... ...... . 179
6.2 I<lassen, Objekte und eigene Methoden ....................................... 180
6.3 I<onstruktor und Destruktor ......................................................... 182
6.4 Besondere Methoden .................................................................. 1846.5 Operatormethoden ...................................................................... 185
6.6 Referenz, Identität und I<opie ...................................................... 187
6.7 Vererbung ................................................................................... 189
6.8 Mehrfachvererbung ..................................................................... 192
7 Neues in python 3 .................................................................... 195
7.1 Neue und geänderte Eigenschaften .............................................. 195
7.1.1 Auffällige Änderungen ..................................................... 195
7.1.2 Weitere Änderungen ....................................................... 196
7.2 I<onvertierung von Python 2 zu Python 3 ..................................... 197
8 Verschiedene Module ............................................................... 199
8.1 Datum und Zeit ........................................................................... 199
8.1.1 Spielen mit Zeitangabe .................................................... 199
8.1.2 Aktuelle Zeit ausgeben .................................................... 199
8.1.3 Zeitangabe erzeugen ....................................................... 203
8.1.4 Mit Zeitangaben rechnen ................................................ 204
8.1.5 Programm anhalten ......................................................... 206
8.1.6 Spiel, Version mit Zeitmessung ........................................ 208
8.2 Modul collections ........................................................................ 209
8.3 Multithreading ............................................................................ 212
8.3.1 Wozu dient Multithreading? ........................................... 212
8.3.2 Erzeugung eines Threads ....... ....... ....... ....... ....... ....... ...... . 212
8.3.3 Identif izierung eines Threads ........................................... 213
8.3.4 Gemeinsame Objekte ...................................................... 215
8.3.5 Threads und Exceptions ....... ....... ....... ...... ....... ....... ....... .. 2168.4 Reguläre Ausdrücke ..................................................................... 218
8.4.1 Suchen von Teiltexten ....... ....... ....... ...... ....... ....... ...... ...... 218
8.4.2 Ersetzen von Teiltexten ........ ....... ....... ........ ....... ....... ....... 222
9 Dateien ........................................ ......................................... .... 225
9.1 Dateitypen ................................................................................... 225
9.2 Öffnen und Schließen einer Datei ................................................ 226
9
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 7/15
Inhalt
9.3 Sequenzielle Dateien ................................................................... 227
9.3.1 Sequenzielles Schrei ben ........... ....... ....... ........ ....... ....... ... 227
9.3.2 Sequenzielles Lesen ......................................................... 229
9.3.3 CSV-Datei schreiben ....... ....... ....... ....... ...... ....... ....... ....... 234
9.3.4 CSV- Datei lesen .............................................................. 236
9.4 Dateien mit festgelegter Struktur ................................................. 237
9.4.1 Formatiertes Schreiben .................................................... 238
9.4.2 Lesen an bel iebiger Stelle ................................................ 239
9.4.3 Schreiben an beliebiger Stelle .......................................... 241
9.5 Modul pickle ............................................................................... 242
9.5.1 Objekte in Datei schreiben .............................................. 242
9.5.2 Objekte aus Datei lesen .......... ........ ....... ....... ........ ....... ... 244
9.6 Bearbeitung mehrerer Dateien ..................................................... 246
9.7 Informationen über Dateien ......................................................... 247
9.8 Dateien und Verzeichnisse verwalten ........................................... 248
9.9 Spiel, Version mit Highscore-Datei ............................................... 249
9.9.1 Eingabebeispiel ............................................................... 250
9.9.2 Aufbau des Programms ................................................... 250
9.9.3 Code des Programms ...... ....... ....... ....... ....... ...... ....... ....... 251
10 Internet .................................................................................... 257
10
10.1 Laden und Senden von Internetdaten ..... ........ ........ ....... ........ ...... 257
10.1.110.1.2
10.1.3
10.1.4
10.1.5
Lokaler Webserver ....................................................... 257Daten lesen .................................................................. 258
Daten kopieren ............................................................ 261
Daten senden per GET ................................................. 261
Daten senden per POST ............................................... 264
10.2 Webserver-Programmierung ........................................................ 267
10.2.1 Erstes Programm .......................................................... 267
10.2.2 Beantworten einer Benutzereingabe ............................. 268
10.2.3 Formularelemente mit mehreren Werten ..................... 272
10.2.4
Typen von Formularelementen .....................................274
10.3 Browser aufrufen ......................................................................... 280
10.4 Spiel, Version für das Internet ...................................................... 281
10.4.1 Eingabebeispiel ............................................................ 281
10.4.2
10.4.3
Aufbau des Programms ................................................ 283
Code des Programms ..... ....... ....... ....... ....... ....... ....... .... 284
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 8/15
Inhalt
11 Datenbanken ............................................................................ 291
11.1 Aufbau von Daten banken ............................................................ 291
11.2 SQ Lite ......................................................................................... 292
11.2.1 Datenbank, Tabelle und Datensätze ........ ......... ......... ... 292
11.2.2 Daten anzeigen ............................................................ 29511.2.3 Daten auswählen, Operatoren ..................................... 296
11.2.4 Operator I ke ............................................................... 298
11.2.5 Sortierung der Ausgabe................................................ 300
11.2.6 Auswahl nach Eingabe ................................................. 301
11.2.7 Datensätze ändern ....................................................... 303
11.2.8 Datensätze läschen ...................................................... 305
11.3 SQ Lite auf dem Webserver .......................................................... 306
12 Benutzeroberflächen ................................................................ 309
12.1 Einführung ................................................................................... 309
12.1.1 Eine erste GUI-Anwendung .......................................... 310
12.1.2 Ändern von Eigenschaften ............................................ 311
12.2 Widget-Typen .............................................................................. 313
12.2.1 Anzeigefeld, Label ........................................................ 313
12.2.2 Einzeilige Textbox, Entry .............................................. 316
12.2.3 Versteckte Eingabe ...................................................... 318
12.2.4 Mehrzeilige Textbox, Text ............................................ 320
12.2.5 Scrollende Textbox, ScrolledText .................................. 322
12.2.6 Listbox mit einfacher Auswahl ...................................... 323
12.2.7 Listbox mit mehrfacher Auswahl .................................. 325
12.2.8 Scrollbar, scrollende Widgets ....................................... 327
12.2.9 Radio-Buttons zur Auswahl, Widget-Var iablen ............. 329
12.2.10 Radio-Buttons zur Auswahl und Ausführung ................ 331
12.2.11 Check-Buttons zur mehrfachen Auswahl ...................... 333
12.2.12 Schieberegler, Scale ..................................................... 335
12.2.13 Mausereignisse ............................................................ 338
12.2.14 Tastaturereignisse ........................................................ 34112.3 Geometrische Anordnung von Widgets ........................................ 343
12.3.1 Frame-Widget, Methode packO ................................... 343
12.3.2 Ein einfacher Taschenrechner ....................................... 346
12.3.3 Methode gridO ............................................................ 351
12.3.4 Methode placeO, absolute Koordinaten ........... ............ 353
11
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 9/15
Inhalt
12.3.5 Methode placeO, relative I<oord inaten ........ ......... ........ 355
12.3.6 Absolute Veränderung von I<oordinaten ...................... 357
12.3.7 Relative Veränderung von I<oord inaten .......... .......... .... 359
12.4 Menüs und MessageBoxes ........................................................... 363
12.4.1 Menüleisten ................................................................. 363
12.4.2 I<ontextmenüs ............................................................. 368
12.4.3 Message Boxes.......................................................... .... 372
13 Lösungen .................................................................................. 379
Index ............................................................................................................ 387
12
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 10/15
4 I Datentypen
print("Element durch Lis te erse tz t : " )
pr in t ( f r )
Listing 4.21 Datei p0422 .py
Die Ausgabe der Liste in den verschiedenen Zuständen:
Orig ina l :
[ 'Par is ' , 'Lyon' , 'Marse i l le ' , 'Bordeaux']
Element ersetz t :
[ 'Par is ' , 'Lyon' , 'Lens' , 'Bordeaux']
Tei 1 ersetzt :
[ 'Par is ' , 'Nancy', 'Metz ' , 'Gap', 'Bordeaux']
Tei l entnommen:
[ 'Par is ' , 'Nancy', 'Metz ' ]
Element durch Liste ersetzt :
[ [ 'Par is -Nord ' , 'Par is-Sud' ] , 'Nancy', 'Metz ' ]
Zur Erläuterung:
~ Die originalliste , bestehend aus vier Zeichenketten, wird erstellt.
Ersetzen ~ Ein einzelnes Element wird durch eine andere Zeichenkette ersetzt.
~ Ein Teilbereich wird durch eine Liste ersetzt.
Löschen ~ Ein Teilbereich wird mithilfe von de l aus der Liste gelöscht.
~ Ein Element wird durch eine Liste ersetzt, dadurch wird eine einge-
bettete Liste erzeugt.
Es gibt eine Reihe von weiteren Funktionen zur Analyse und Bearbeitung
von Listen. Einige dieser Funktionen werden im folgenden Programm
verdeutlich :
lf Orig inal ls te
f r ~ [" Par i s " , " Ly 0 n" , "M ars e i l 1e" ]
pr in t ( "Or ig ina l : " )
pr in t ( f r )
# Einsetzen eines Elements
f r . insert (O,"Nantes")
print("Nach Einsetzen:")
pr in t ( f r )
# Sort ieren der Elemente
f r . so r t ( )
print("Nach Sort ieren:")
pr in t ( f r )
102
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 11/15
# Umdrehen der Liste
fr.reverse()
print("Nach Umdrehen:")
print(fr)
# Entfernen eines Elementsfr.remove("Nantes")
print("Nach Entfernen:")
print(fr)
# Ein Element am Ende hinzu
fr.append("Paris")
print("Ein Element hinzu:")
print(fr)
i! Anzahl bestimmterEl
ementeprint("Anzahl Elemente Paris:", fr .count("Paris"))
# Suchen bestimmter Elemente
print("Erste Position Paris:", fr . index("Paris"))
Listing 4.22 Datei p0423 .py
Die Ausgabe der Liste in den verschiedenen Zuständen:
Original:
[ , Par i s " 'Ly 0 n " 'M ars eil 1 e ' ]Nach Einsetzen:
[ , Na n t es ' , 'P a r i s " 'Ly 0 n " 'M ars eil 1 e ' ]
Nach Sortieren:
[ , Ly 0 n " 'M ars eil 1e ', 'N a n t es ' , 'P a r i s ' ]
Nach Umdrehen:
[ 'Par is ' , 'Nantes', 'Marseille ' , 'Lyon']
Nach Entfernen:
[ 'Par is ' , 'Marseille ' , 'Lyon']
Ein Element hinzu:
[ 'Par is ' , 'Marseille ' , 'Lyon', 'Paris ' ]Anzahl Elemente Paris: 2
Erste Position Paris: 0
Zur Erläuterung:
Listen I 4·3
~ Die Originalliste, bestehend aus drei Zeichenketten, wird erstellt.
~ Ein Element wird mit der Funktion in s er t ( ) an der Position 0 einge- insertO
fügt, also zu Beginn der Liste.
1°3
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 12/15
4 I Datentypen
sortO ~ Die Liste wird mit der Funktion sor t ( ) intern sortiert. Falls es sich
um eine Liste von Zeichenketten handelt, wird alphabetisch sortiert.
Eine Liste von zahlen wird nach Größe sortiert. Bei anderen Listen-
elementen oder bei gemischten Listen ist der Einsatz der Funktion
so r t ( ) nur bedingt sinnvoll.
reverseO ~ Die Liste wird mit der Funktion reverse( ) intern umgedreht.
removeO ~ Ein bestimmtes Element (hier: Nantes) wird innerhalb der Liste
gesucht. Falls es vorhanden ist, wird das erste Vorkommen dieses Ele-
ments mit der Funktion remove( ) gelöscht. Falls es nicht vorhanden
ist, wird eine Ausnahme ausgelöst.
appendO ~ Ein Element wird am Ende der Liste mit der Funktion a ppend ( ) angefügt.
countO ~ Die Anzahl der Vorkommen eines bestimmten Elements (hier: Pa r i s)
wird mit der Funktion count() ermittelt.
indexO ~ Die Position des ersten Vorkommens eines bestimmten Elements
(hier: Par i s) wird mit der Funktion index ( ) ermittelt. Ist das Element
nicht vorhanden, wird eine Ausnahme ausgelöst.
4.4 lupel
In diesem Abschnitt werden Tupel und ihre besonderen Eigenschaften
sowie Operationen mit Tupeln erläutert.
Eigenschaften
Unveränderlich Ein Tupel unterscheidet sich von einer Liste im Wesentlichen durch eine
einzige Eigenschaft: Ein Tupel kann nicht verändert werden. Ansonsten
gelten die gleichen Regeln und es können die gleichen Operationen und
Funktionen auf Tupel wie auf Listen angewendet werden, sofern sie
keine Veränderung des Tupels hervorrufen.
4.4.2 Operationen
Einige Beispiele und Besonderheiten:
lf Tupel mi t und ohne Kl ammer
z ~ (3, 6, -8, 5.5)
pr int ( "Tupel 1:" , z)
Z ~ 6, 8, -3
pr int ( "Tupel 2:" , z)
104
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 13/15
12 I Benutzeroberflächen
Widget-Dictionary
configureO
Ir Button Ende 1
bl ~ tkinter.Button(main, text
Ir Button Ende 2
b2 ~ tkinter.Button(main)
b2["text"]~
"Auch Ende"b2["command"] ende
Ir Button Ende 3
b3 ~ tkinter.Button(main)
"Ende", command
b3.configure(text ~ "Ebenfalls Ende", command
# Buttons anzeigen
bl.pack()
b2.pack()
b3.pack()
# Endlosschleife
main.mainloop()
Listing 12.2 Datei p1202.py
ende)
ende)
Bei Ausführung des Programms werden drei Buttons angezeigt, die auf
unterschiedliche Art und Weise erzeugt wurden:
Abbildung 12.2 Drei unterschiedlich erzeugte Buttons
Zur Erläuterung:
~ Der Button bl wird bei Erzeugung mit allen Eigenschaften versorgt.
~ Der Button b2 wird zunächst nur erzeugt und dem Hauptfenster zuge-ordnet. Anschließend wird das Widget wie ein Dictionary genutzt.
Die jeweilige Eigenschaft wird als schlüssel verwendet, dem ein Wert
zugewiesen wird.
~ Der Button b3 wird ebenfalls zunächst nur erzeugt und dem Haupt
fenster zugeordnet. Anschließend wird die Methode confi gure ( ) mit
benannten Parametern auf das Widget angewendet, um ihm Eigen
schaften zuzuweisen.
312
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 14/15
Widget-Typen I 12.2
12.2 Widget-Typen
In diesem Abschnitt werden eine Reihe von Widget-Typen für die ver
schiedenen Einsatzzwecke vorgestellt.
12.2.1 Anzeigefeld, Label
Ein Label-Widget wird zur Anzeige von Informationen verwendet. Dabei Label-Widget
kann es sich um ein Bild oder um einen unveränderlichen Text handeln.
Die Texte dienen in Gur-Anwendungen zur Erläuterung der Oberfläche
und ihrer Bedienelemente für den Benutzer.
Anhand von drei Labels sollen im folgenden Programm eine Reihe von
allgemeinen Widget-Eigenschaften gezeigt werden, die bei allen Arten
von Widgets zur Anwendung kommen können.
Dies sind die Eigenschaften:
~ font (Schrift)
~ height (Höhe)
~ width (Breite)
~ borderwidth (Randbreite)
~ re 1 i ef (Randart)
~ image (Bild)
~ bg (background, Hintergrundfarbe)
~ fg (foreground, Vordergrundfarbe)
~ an cho r (Ausrichtung)
Das Programm sieht folgendermaßen aus:
import sys , tk in te r
def ende():
sys.exi t (O)
main ~ tk in te r .Tk( )
lf Erstes Label, mit Text
lb 1 ~ tkinter .Label(main, t ex t ~ "groove")
lb l [" fon t"] ~ "Courier 16 i t a l i c "
lb1["height"] ~ 2
lb1["width"] ~ 20
lb1["borderwidth"] 5
313
Allgemeine
Eigenschaften
5/17/2018 Seiten Aus Einstieg in Python 3 - slidepdf.com
http://slidepdf.com/reader/full/seiten-aus-einstieg-in-python-3 15/15
12 I Benutzeroberflächen
lbl["re l ief"] ~ "groove"
lb1["bg"] ~ "#FFFFFF"
lb1["fg"] ~ "#000000"
lb1["anchor"] ~ "w"
lb1.pack()
Ir Ende- Button
b ~ tkinter.Button(main. text
b.pack()
Ir Zweites Label. mit Text
lb2 ~ tkinter.Label(main. text
lb2["font"] ~ "Arial 11 bold"
lb2["height"] ~ 2
lb2["width"] ~ 20
lb2["borderwidth"] ~ 5
lb2["rel ief"] ~ "ridge"
lb2["bg"] ~ "#FFFFFF"
lb2["fg"] ~ "#000000"
lb2["anchor"] ~ "e"
lb2.pack()
Ir Dri t tes Label. mi t Bi 1d
lb3 ~ tkinter.Label(main)
"Ende". command
"ridge")
im ~ t k i n t e r . P h o t o l m a g e ( f i l e ~ " g l o b u s . g i f " ) lb3["image"] ~ im
lb3.pack()
main.mainloop()
Listing 12.3 Datei p1203.py
Das Ergebnis dieses Programms zeigt Abbildung 12.3.
groove
ridge l
Abbildung 12.3 Label
314
ende)