Thomas Theis Einstieg in Python 3 e·A .,. Gal ileo Press • e Liebe Leserin, lieber Leser, mit der Programmiersprache Python haben Sie eine gute Wahl getroffen: Sie ist nicht nur leicht zu lernen, sie bietet Ihnen später auch das Potenzial für anspruchsvollere Projekte. Dieses Buch wird Sie dabei auf Ihrem Weg von Anfang an begleiten. Schritt für Schritt und jederzeit verständlich erlernen Sie zunächst anhand vieler kleiner Beispiele die Grundlagen der Programmierung. Sie werden daher im Handumdrehen in der Lage sein, Ihre ersten eigenen Python-Programme zu schreiben, selbst wenn Sie vorher noch nie programmiert haben sollten. Im weiteren Verlauf des Buchs macht Sie unser Autor Thomas Theis dann nach und nach natürlich auch mit den fortgeschritteneren Themen der Python-Programmierung vertraut - selbstverständlich alles aktuell zur neuen Version Python 3. Im Vordergrund steht dabei stets die Praxis, denn auch mit dem besten Buch lernen Sie Python nur, indem Sie selbst damit programmieren. Aus diesem Grund bietet Ihnen das Buch nicht nur eine Vielzahl spielerischer Beispiele, sondern auch zahlreiche Übungen, mit denen Sie Ihr neu gewonnenes Wissen direkt austesten können. Alles, was Sie dafür benötigen, finden Sie auf der beiliegenden CD, so dass Sie sofort loslegen können. Dieses Buch wurde mit großer Sorgfalt geschrieben, geprüft und produziert. Sollte dennoch einmal etwas nicht so funktionieren, wie Sie es erwarten, freue ich mich, wenn Sie sich mit mir in Verbindung setzen. Ihre Kritik und konstruktiven Anregungen, aber natürl ich auch I hr Lob sind uns jederzeit herzl ich will kommen! Viel Spaß mit Python wünscht Ihnen nun Ihre Christine Siedle Lektorat Galileo Computing ch ristine [email protected] www.galileocomputing.de Galileo Press· Rheinwerkallee 4·53227 Bonn 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 Der Name Galileo Press geht auf den italienischen Mathematiker und Philosophen Galileo Galilei (1564-1642) zurück. Er gilt als Gründungsfigur der neuzeitlichen Wissenschaft und wurde berühmt als Verfechter des modernen, heliozentrischen Weltbilds. Legendär ist sein Ausspruch Eppur se muove (Und sie bewegt sich doch). Das Emblem von Galileo Press ist der Jupiter, umkreist von den vier Galileischen Monden. Galilei entdeckte die nach ihm benannten Monde 1610. Gerne stehen wir Ihnen mit Rat und Tat zur Seite: [email protected] bei Fragen und Anmerkungen zum Inhalt des Buches [email protected] für versandkostenfreie Bestellungen und Reklamationen [email protected] für Rezensions- und Schulungsexemplare Lektorat Judith Stevens-Lemoine, Christine Siedle Fachgutachten Carsten Reimer I<orrektorat Bettina Mosbach Cover Barbara Thoben, Köln Titelbild Barbara Thoben, Köln Typografie und Layout Vera Brauner Herstellung Julia Bach Satz Typographie & Computer, Krefeld Druck und Bindung Bercker Graphischer Betrieb, Kevelaer Dieses Buch wurde gesetzt aus der Linotype Syntax Serif (9,25/13,25 pt) in FrameMaker. Gedruckt wurde es auf chlorfrei gebleichtem Offsetpapier. Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. ISBN 978-3-8362-1406-3 © Galileo Press, Bonn 2009 2., aktualisierte Auflage Das vorliegende Werk ist in all seinen Teilen urheberrechtlieh geschützt. Alle Rechte vorbehalten, insbesondere das Recht der Übersetzung, des Vortrags, der Reproduktion, der Vervielfältigung auf fotomechanischem oder anderen Wegen und der Speicherung in elektronischen Medien. Ungeachtet der Sorgfalt, die auf die Erstellung von Text, Abbildungen und Programmen verwendet wurde, können weder Verlag noch Autor, Herausgeber oder Übersetzer für mögliche Fehler und deren Folgen eine juristische Verantwortung oder irgendeine Haftung übernehmen. Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. können auch ohne besondere Kennzeichnung Marken sein und als solche den gesetzlichen Bestimmungen unterliegen. Inhalt 1 2 Einführung ................................................................................ 1.1 Vorteile von Python ..................................................................... 13 1.2 1.3 Verbreitung von Python ............................................................... Aufbau des Buchs ........................................................................ 14 14 1.4 Übungen ..................................................................................... 15 1.5 Installation von Python ................................................................ 16 Erste Schritte ........................................................................... 17 2.1 17 17 2.2 2.3 3 13 Python als Taschenrechner ........................................................... 2.1.1 Eingabe von Berechnungen ............................................. 2.1.2 Addition, Subtraktion und Multiplikation ........................ 18 2.1.3 Division, Ganzzahldivision und Modulo ........................... 18 2.1.4 2.1.5 Rangfolge und Klammern ................................................ Variablen und Zuweisung ................................................ 19 20 Erstes Programm .......................................................................... 2.2.1 Hallo Welt ...................................................................... 21 21 2.2.2 Eingabe eines Programms ................................................ Speichern und Ausführen ............................................................. 2.3.1 Speichern ........................................................................ 22 22 22 2.3.2 Ausführen unter Windows .............................................. 23 2.3.3 Ausführen unter Linux ..................................................... 27 2.3.4 2.3.5 Kommentare................................................................... Verkettung von Ausgaben ............................................... 27 28 2.3.6 Lange Ausgaben .............................................................. 28 Programmierkurs ...................................................................... 31 3.1 Ein Spiel programmieren .............................................................. 3.1.1 Das fertige Spiel .............................................................. 31 31 3.1.2 Der Weg zum fertigen Spiel............................................. 31 3.1.3 Mögliche Erweiterungen ................................................. 32 Variablen und Operatoren ........................................................... 3.2.1 Berechnung und Zuweisung ............................................ 3.2.2 Eingabe einer Zeichen kette ............................................. 32 32 33 3.2 3.2.3 Eingabe einer Zahl........................................................... 33 3.2.4 Spiel, Version mit Eingabe ............................................... 35 3.2.5 Zufallszahlen ................................................................... 36 5 Inhalt 3.3 3.4 3.5 3.6 6 37 3.3.1 Vergleichsoperatoren ...................................................... 38 3.3.2 3.3.3 3.3.4 3.3.5 Einfache Verzweigung ..................................................... 38 Spiel, Version mit Bewertung der Eingabe ....................... Mehrfache Verzweigung .................................................. Logische Operatoren ....................................................... 39 40 42 3.3.6 Mehrere Vergleichsoperatoren ........................................ 3.3.7 3.3.8 Spiel, Version mit genauer Bewertung der Eingabe .......... 44 45 Rangfolge der Operatoren .............................. ................. Schleifen...................................................................................... 46 47 3.4.1 for-Schleife ..................................................................... 47 3.4.2 3.4.3 Schleifenabbruch mit break ............................................. Geschachtelte I<ontrollstrukturen .................................... 48 48 3.4.4 Spiel, Version mit for-Schleife und Abbruch .................... 50 3.4.5 3.4.6 3.4.7 3.4.8 for-Schleife mit rangeO .................................................... Spiel, Version mit rangeO ................................................ while-Schleife ................................................................. Spiel, Version mit while-Schleife und Zähler .................... 51 54 56 57 Fehler und Ausnahmen ................................................................ 58 3.5.1 Basisprogramm ................................................................ 58 3.5.2 3.5.3 Programmabbruch vermeiden ......................................... Fehler abfangen .............................................................. 59 61 3.5.4 3.5.5 Exkurs: Schleifenfortsetzung mit continue ....................... Spiel, Version mit Ausnahmebehandlung ........................ 62 63 Funktionen und Module .............................................................. 3.6.1 Einfache Funktionen ........................................................ 3.6.2 Funktionen mit einem Parameter .................................... 3.6.3 Funktionen mit mehreren Parametern ............................. 65 66 68 69 3.6.4 Funktionen mit Rückgabewert ......................................... 70 3.6.5 Spiel, Version mit Funktionen ......................................... Das fertige Spiel........................................................................... 71 72 Datentypen .............................................................................. 77 4.1 77 3.7 4 Verzweigungen ............................................................................ Zahlen 4.1.1 4.1.2 Ganze Zahlen ................................................................. . Zahlen mit Nachkommastelien ...................................... .. 77 79 4.1.3 Operatoren..................................................................... 4.1.4 4.1.5 4.1.6 Rundung und I<onvertierung ........................................... Modul math .................................................................... Brüche............................................................................ 80 80 82 83 Inhalt 4.2 4.3 4.4 4.5 Zeichenketten .............................................................................. 86 4.2.1 Eigenschaften.................................................................. 86 4.2.2 Operatoren ..................................................................... 87 4.2.3 4.2.4 4.2.5 Operationen ................................................................... Funktionen..................................................................... Umwandlung von Zeichenkette in Zahl........................... 89 91 94 4.2.6 4.2.7 Listen Umwandlung von Zahl in Zeichenkette ........................... Datentyp bytes................................................................ 96 97 98 4.3.1 Eigenschaften.................................................................. 98 4.3.2 Operatoren..................................................................... 100 4.3.3 Tupel Funktionen und Operationen .......................................... 101 104 4.4.1 Eigenschaften .................................................................. 104 4.4.2 Operationen................................................................... 4.4.3 Tupel entpacken ............................................................. Dictionarys .................................................................................. 4.5.1 Eigenschaften .................................................................. 4.5.2 4.6 4.8 5 Funktionen ..................................................................... 110 4.5.3 Views .............................................................................. 111 4.5.4 Vergleiche ....................................................................... 113 Mengen, Sets ............................................................................... 114 4.6.1 4.6.2 4.7 104 106 109 109 Eigenschaften .................................................................. 114 Funktionen ..................................................................... 115 4.6.3 Operatoren ..................................................................... 116 4.6.4 Frozenset ........................................................................ 119 Wahrheitswerte und Nichts ......................................................... 120 4.7.1 Wahrheitswerte True und False ....................................... 120 4.7.2 Nichts, None ................................................................... 123 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 Weiterführende Programmierung ............................................ 131 5.1 Allgemeines ................................................................................. 131 5.1.1 5.1.2 5.1.3 Kombinierte Zuweisungsoperatoren ................................ 131 Anweisung in mehreren Zeilen ........................................ 133 Eingabe mit Hilfestellung ................................................ 134 7 Inhalt 5.2 5.3 5.4 5.1.4 Anweisung pass .............................................................. 135 5.1.5 Funktionen evalO und execO ........................................... 137 Ausgabe und Formatierung .......................................................... 5.2.1 Funktion printO ............................................................... 5.2.2 Formatierte Ausgabe ....................................................... Conditional Expression ................................................................ 138 138 140 144 Iterierbare Objekte ...................................................................... 145 5.4.1 Funktion zipO .................................................................. 146 5.4.2 5.4.3 Funktion mapO ............................................................... 146 Funktion filterO ............................................................... 148 5.5 List Comprehension ..................................................................... 149 5.6 Fehler und Ausnahmen ................................................................ 151 Allgemeines .................................................................... 151 5.6.1 5.7 5.6.2 Syntaxfehler .................................................................... 152 5.6.3 5.6.4 5.6.5 5.6.6 Laufzeitfehler .................................................................. Logische Fehler und Debugging ...................................... Fehler erzeugen .............................................................. Unterscheidung von Ausnahmen ..................................... Funktionen .................................................................................. 161 5.7.1 5.8 153 154 158 159 5.7.2 5.7.3 Variable Anzahl von Parametern ...................................... 161 Benannte Parameter ........................................................ 162 Voreinstellung von Parametern ....................................... 163 5.7.4 5.7.5 Mehrere Rückgabewerte ................................................. 164 Übergabe von I<opien und Referenzen ............................ 165 5.7.6 Lokal, global ................................................................... 168 5.7.7 Lambda-Funktion ............................................................ 169 Eingebaute Funktionen ................................................................ 170 5.8.1 Übersicht ........................................................................ 170 5.8.2 Funktionen maxO, minO und sumO ................................. 171 5.8.3 5.8.4 Funktionen chrO und ordO .............................................. 172 Funktionen reversedO und sortedO ................................. 173 5.9 Eigene Module ............................................................................ 174 5.10 5.9.1 Eigene Module erzeugen ................................................. 174 5.9.2 Eigene Module verwenden .............................................. 175 Parameter der I<ommandozeile .................................................... 176 5.10.1 Übergabe von Zeichenketten ........................................... 176 5.10.2 Übergabe von Zahlen ...................................................... 177 5.10.3 8 Beliebige Anzahl von Parametern .................................... 177 Inhalt 6 7 Objektorientierte Program m ieru ng ......................................... 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 .................................................................. 184 6.5 Operatormethoden ...................................................................... 185 6.6 Referenz, Identität und I<opie ...................................................... 187 6.7 Vererbung ................................................................................... 189 6.8 Mehrfachvererbung ..................................................................... 192 Neues in python 3 .................................................................... 195 7.1 7.2 8 Neue und geänderte Eigenschaften .............................................. 195 7.1.1 Auffällige Änderungen ..................................................... 195 7.1.2 Weitere Änderungen ....................................................... 196 I<onvertierung von Python 2 zu Python 3 ..................................... 197 Verschiedene Module ............................................................... 199 8.1 Datum und Zeit ........................................................................... 199 8.1.1 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 8.4 9 Spielen mit Zeitangabe .................................................... 199 Wozu dient Multithreading? ........................................... 212 8.3.2 Erzeugung eines Threads ................................................. 212 8.3.3 Identifizierung eines Threads ........................................... 213 8.3.4 Gemeinsame Objekte ...................................................... 215 8.3.5 Threads und Exceptions .................................................. 216 Reguläre Ausdrücke ..................................................................... 218 8.4.1 Suchen von Teiltexten ..................................................... 218 8.4.2 Ersetzen von Teiltexten ................................................... 222 Dateien ..................................................................................... 225 9.1 Dateitypen ................................................................................... 225 9.2 Öffnen und Schließen einer Datei ................................................ 226 9 Inhalt 9.3 9.4 Sequenzielle Dateien ................................................................... 227 9.3.1 Sequenzielles Schrei ben .................................................. 227 9.3.2 9.3.3 Sequenzielles Lesen ......................................................... 229 CSV-Datei schreiben ....................................................... 234 9.3.4 CSV- Datei lesen .............................................................. 236 Dateien mit festgelegter Struktur ................................................. 237 9.4.1 9.5 Formatiertes Schreiben .................................................... 238 9.4.2 Lesen an bel iebiger Stelle ................................................ 239 9.4.3 Schreiben an beliebiger Stelle .......................................... 241 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.1 10.2 Laden und Senden von Internetdaten .......................................... 257 10.1.1 Lokaler Webserver ....................................................... 257 10.1.2 Daten lesen .................................................................. 258 10.1.3 Daten kopieren ............................................................ 261 10.1.4 Daten senden per GET ................................................. 261 10.1.5 Daten senden per POST ............................................... 264 Webserver-Programmierung ........................................................ 267 10.2.1 10 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 Aufbau des Programms ................................................ 283 10.4.3 Code des Programms ................................................... 284 Inhalt 11 Datenbanken ............................................................................ 291 11.1 Aufbau von Daten banken ............................................................ 291 11.2 SQ Lite ......................................................................................... 292 11.2.1 11.3 Datenbank, Tabelle und Datensätze ............................. 292 11.2.2 Daten anzeigen ............................................................ 295 11.2.3 Daten auswählen, Operatoren ..................................... 296 11.2.4 Operator I ike ............................................................... 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 SQ Lite auf dem Webserver .......................................................... 306 12 Benutzeroberflächen ................................................................ 309 12.1 12.2 Einführung ................................................................................... 309 12.1.1 Eine erste GUI-Anwendung .......................................... 310 12.1.2 Ändern von Eigenschaften ............................................ 311 Widget-Typen .............................................................................. 313 12.2.1 12.3 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-Variablen ............. 329 12.2.10 12.2.11 Radio-Buttons zur Auswahl und Ausführung ................ 331 Check-Buttons zur mehrfachen Auswahl ...................... 333 12.2.12 Schieberegler, Scale ..................................................... 335 12.2.13 Mausereignisse ............................................................ 338 12.2.14 Tastaturereignisse ........................................................ 341 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 Inhalt 12.4 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 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 I 1 Einführung In diesem Kapitel wird Ihnen Python kurz vorgestellt. Sie lernen die Vorteile von Python kennen und erfahren, wie die Programmierumgebung unter Windows installiert wird. 1.1 Vorteile von Python Python ist eine sehr einfach zu erlernende Programmiersprache und für den Einstieg in die Welt der Programmierung ideal geeignet. Trotz ihrer Einfachheit bietet diese Sprache auch die Möglichkeit, komplexe Programme für vielfältige Anwendungsgebiete zu schreiben. Leicht zu lernen Python eignet sich besonders zur schnellen Entwicklung umfangreicher Anwendungen. Diese Technik ist unter dem Stichwort RAD (= Rapid Application Development) bekannt geworden. Python vereint zu diesem Zweck folgende Vorteile: ~ Eine einfache, eindeutige Syntax: Python ist eine ideale Programmiersprache für Einsteiger. Sie beschränkt sich auf einfache, klare Anweisungen. In anderen Programmiersprachen werden vielfältige Lösungswege für das gleiche Problem angeboten, sodass der Entwickler weniger geleitet als verunsichert wird. Python beschränkt sich dagegen häufig auf einen einzigen möglichen Lösungsweg. Dieser prägt sich schnell ein und wird dem Entwickler vertraut. Einfach ~ Klare Strukturen: Python zwingt den Entwickler, in einer gut lesbaren Struktur zu schreiben. Die Anordnung der Programmzeilen ergibt gleichzeitig die logische Struktur des Programms. Klar ~ Wiederverwendung von Code: Die Modularisierung, also die Zerlegung eines Problems in Teilprobleme und die anschließende Zusammenführung der Teillösungen zu einer Gesamtlösung, wird in Python sehr leicht gemacht. Die vorhandenen Teillösungen können unkompliziert für weitere Aufgabenstellungen genutzt werden, sodass Sie als Entwickler bald über einen umfangreichen Pool an Modulen verfügen. Wiederverwendbar 13 1 I Einführung Einheitliche Objekte ~ Objektbearbeitung: In Python werden alle Daten als Objekte gespeichert. Dies führt zu einer einheitlichen Datenbehandlung für Objekte unterschiedlichen Typs. Andererseits wird die physikalische Speicherung der Objekte von Python automatisch, ohne Eingriff des Entwicklers vorgenommen. Der Entwickler muss sich nicht um die Reservierung und Freigabe geeigneter Speicherbereiche kümmern. Interpretiert ~ Interpreter / Compiler: Python-Programme werden unmittelbar interpretiert. Sie müssen nicht erst kompiliert und gebunden werden. Dies ermöglicht einen häufigen, schnellen Wechsel zwischen Codierungsund Testphase. Unabhängig ~ Unabhängigkeit vom Betriebssystem: Sowohl Programme, die von der Kommandozeile aus bedient werden, als auch Programme mit grafischen Benutzeroberflächen können auf unterschiedlichen Betriebssystemen (Windows, Unix/Linux, Mac OS) ohne Neuentwicklung und Anpassung eingesetzt werden. 1.2 Verbreitung von Python Innerhalb des Projekts 100-Dollar-Laptop, das der Schulausbildung von Kindern in aller Welt dient, wird Python für die Benutzeroberfläche verwendet. Es wird in zahlreichen weiteren Unternehmen eingesetzt: ~ Google: Python ist eine der drei offiziellen Programmiersprachen. (Guido van Rossum, der Entwickler von Python, arbeitet für Google.) ~ YouTube: Wurde zum großen Teil mit Hilfe von Python entwickelt. ~ NASA: Nutzt Python zur Softwareentwicklung im Zusammenhang mit den Space-Shuttle-Missionen. ~ Industrial Light and Magic (Filmproduktion) ~ Honeywell (Hardware- und Softwareentwicklung) 1.3 Aktiv lernen Aufbau des Buchs Das vorliegende Buch soll Sie in die Programmiersprache Python einführen. Es wird besonderer Wert darauf gelegt, dass Sie selbst praktisch mit Python arbeiten. Daher möchte ich Sie von Anfang an dazu auffordern, dem logischen Faden von Erklärungen und Beispielen zu folgen. Erste Zusammenhänge werden in Kapitel 2, »Erste Schritte«, anhand von einfachen Berechnungen vermittelt. Außerdem lernen Sie, ein Pro- 14 Übungen I 1·4 gramm einzugeben, zu speichern und es unter den verschiedenen Umgebungen auszuführen. Sie sollen die Sprache spielerisch kennenlernen. Daher wird Sie ein selbst programmiertes Spiel durch das Buch begleiten. Dieses Spiel wird mit dem »Programmierkurs« in Kapitel 3 eingeführt und im weiteren verlauf des Buchs kontinuierlich erweitert und verbessert. Spielerisch lernen Nach der Vorstellung der verschiedenen Datentypen mit ihren jeweiligen Eigenschaften und Vorteilen in Kapitel 4, »Datentypen«, werden die Programmierkenntnisse in Kapitel 5, »Weiterführende Programmierung«, vertieft. Kapitel 6, »Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. Objektorientiert Python hat mit der Version 3.0 große Änderungen erfahren. Diese Änderungen sind in alle Kapitel und Programme dieses Buchs integriert. Kapitel 7, »Neues in Python 3«, fasst die Neuerungen, die besonders für Einsteiger interessant sind, noch einmal übersichtlich zusammen. Python 3.0 Einige nützliche Module zur Ergänzung der Programme werden im Kapitel 8, »Verschiedene Module«, vorgestellt. In den Kapiteln 9, »Dateien«, und 11, »Datenbanken«, lernen Sie, Daten dauerhaft in Dateien oder Datenbanken zu speichern. Python wird zudem in der Internetprogrammierung eingesetzt. Die Zusammenhänge zwischen Python und dem Internet vermittelt Kapitel 10, »Internet«. Sowohl Windows als auch Linux bieten komfortable grafische Benutzeroberflächen. Kapitel 12, »Benutzeroberflächen«, beschäftigt sich daher mit der Erzeugung von Benutzeroberflächen mithilfe des Moduls tkinter. Dieses stellt eine Schnittstelle zwischen dem grafischen Toolkit Tk und Python dar. Für die Hilfe bei der Erstellung dieses Buchs bedanke ich mich bei Bettina Mosbach, Carsten Reimer und dem ganzen Team von Galileo Press, ganz besonders bei Christine Siedle. 1.4 Übungen In Kapitel 3, »Programmierkurs«, und in weiteren Kapiteln werden Übungsaufgaben gestellt, die unmittelbar gelöst werden sollten. Auf diese Weise können Sie Ihre Kenntnisse prüfen, bevor Sie zum nächsten 15 Grafische Oberflächen I