Thomas Theis. Einstieg in Python 3. e A. .,. e. Gal i leo Press

Ähnliche Dokumente
1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Thomas Theis. Einstieg in VBA mit Excel

Thomas Theis. Einstieg in Python. Galileo Press

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

Python. Grundlagen und Praxis. Peter Walerowski ADDISON-WESLEY. An imprint of Pearson Education

Inhalt. 1 PHP-Programmierkurs 23. Einführung... 17

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Michael Weigend. Python GE-PACKT

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Jürgen Wolf. C++ von Abis Z. Das umfassende Handbuch .. ~ ... Galileo Press

Thomas Theis. Einstieg in VBA mit Excel

Ivan van Laningham. Deutsche Übersetzung: Dirk Steinkamp, Maik Hester, Ulrich Lindtner. Jetzt lerne ich. Python. Markt+Technik Verlag

KOMPENDIUM. Access-VBA

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Einstieg in PHP 5 und MySQL 5

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Michael Weigend. Python GE-PACKT. 5. Auflage

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

Programmieren lernen mit Perl

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

Inhalt. Vorwort Erste Grundlagen... 15

Python. Grundlagen, fortgeschrittene Programmierung und Praxis

examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt.

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

grep kurz & gut John Bambenek and Agnieszka Klus

1 Einführung PHP-Programmierkurs Daten senden und auswerten Datenbanken mit MySQL Objektorientierung in PHP 251

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Peter Kröner. Einstieg in CSS3. Standards und Struktur. 1. Auflage. Open Source Press

Sebastian Springer, Testgetriebene Entwicklung mit JavaScript, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Objektorientierte Programmierung in Java

Inhaltsverzeichnis. Warren D. Sande, Carter Sande. Hello World! Programmieren für Kids und andere Anfänger. Übersetzt von Dorothea Heymann-Reder

PHP Programmierung. Seminarunterlage. Version 1.07 vom

Visual C#.NET. Bearbeitet von Patrick A. Lorenz

Programmieren in Lua

Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

Thomas Theis. Einstieg in JavaScript

C++ Programmieren mit einfachen Beispielen DIRK LOUIS

Intrexx Applikation PROCESS VISUALIZER PRO 3.1

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

Das Einsteigerseminar Objektorientierte Programmierung in Java

Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen

RELEASE 5 Lotus Notes als Datenquelle

Internet. HTML Programmierung Grundlagen HTML Programmierung für Fortgeschrittene CGI Programmierung PHP Programmierung Programmieren mit JavaScript

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Die gesetzliche Unfallversicherung - von der Behörde zum modernen Dienstleistungsunternehmen

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Einführung in Python. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Mark Lutz & David Ascher

Hans-Georg Schumann. Visual Basic Inklusive DVD-ROM

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Bibliografische Information der Deutschen Nationalbibliothek:

Inhalt. Vorwort zur dritten Auflage 15

C für Java-Programmierer

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

Nicholas C. Zakas, JavaScript objektorientiert, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Neuronale Netze selbst programmieren

Java als erste Programmiersprache

2 Anlegen und Konfigurieren von Datenbanken 35

Algorithmen und ihre Programmierung

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

ECDL MODUL COMPUTING. Syllabus Version 1.0

Kundenorientierung von Dienstleistungsunternehmen als kritischer Erfolgsfaktor

manchen Situationen bei der Fehlersuche und bei der Erzeugung von Anwendungen mit C# und.net helfen wird.

Kennzahlenbasiertes Prozeßcontrolling für den Produktionsbereich in einem Unternehmen der Investitionsgüterindustrie

Grundlagen der Informatik 2. Operatoren

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License.

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Python als praktischer Helfer

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Selbstgesteuertes Lernen bei Studierenden

Übergewichtige Kinder und Jugendliche in Deutschland

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper

Richtig einsteigen: Access 2010 VBA-Programmierung

Programmieren lernen in ASP.NET mit C#

Programmierkurs für das modularisierte Lehramt. September 2011, 8. Vorlesung. Stuttgart, den 22. September Dr. Heiko Schulz.

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Yoga - die Kunst, Körper, Geist und Seele zu formen

Einführung in die Programmierung

Excel 2016 Basiswissen. Inge Baumeister, Anja Schmid

1)Einfache Ausgabe und Abfragen in PHP durchführen

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Wolmerin; Java lernen y. mit Eclipse 3. Galileo Computing

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Word Basiswissen

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

SPD als lernende Organisation

Medien. Wilfried Waibel. DVD-Video. Diplomarbeit

Einstieg in Visual C# 2010 Galileo Press

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Richtig einsteigen: Access 2007 VBA-Programmierung

C für Java- Programmierer

Kontrollstrukturen und Logik

Windows 8 Apps entwickeln

Entwicklung eines E-learning-Moduls zur Gesundheitsberichterstattung

Transkript:

Thomas Theis Einstieg in Python 3 e A.,. e Gal i leo Press

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.siedle@galileo-press.de 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: christine.siedle@galileo-press.de bei Fragen und Anmerkungen zum Inhalt des Buches service@galileo-press.de für versandkostenfreie Bestellungen und Reklamationen julia.bruch@galileo-press.de 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 Einführung... 13 1.1 Vorteile von Python... 13 1.2 Verbreitung von Python... 14 1.3 Aufbau des Buchs... 14 1.4 Übungen... 15 1.5 Installation von Python... 16 2 Erste Schritte... 17 2.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

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... 63 3.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 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 6

Inhalt 4.2 Zeichenketten... 86 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 4.3 Listen 98 4.3.1 Eigenschaften... 98 4.3.2 Operatoren... 100 4.3.3 Funktionen und Operationen... 101 4.4 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 mit Hilfestellung... 134 7

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 Conditional 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... 153 5.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

Inhalt 6 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 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 Identifizierung eines Threads... 213 8.3.4 Gemeinsame Objekte... 215 8.3.5 Threads und Exceptions... 216 8.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

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.1 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 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 Aufbau des Programms... 283 10.4.3 Code des Programms... 284 10

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... 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 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-Variablen... 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... 341 12.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

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

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. ~ Klare Strukturen: Python zwingt den Entwickler, in einer gut lesbaren Struktur zu schreiben. Die Anordnung der Programmzeilen ergibt gleichzeitig die logische Struktur des Programms. ~ 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. Einfach Klar Wiederverwendbar 13

1 I Einführung Einheitliche Objekte Interpretiert Unabhängig ~ 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. ~ 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ä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 Aufbau des Buchs Aktiv lernen 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 I 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. 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. Spielerisch lernen Objektorientiert Python hat mit der Version 3.0 große Änderungen erfahren. Diese Ände- Python 3.0 rungen 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. 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. Grafische Oberflächen 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