Inhaltsverzeichnis

Impressum

Einleitung

E.1 Was ist Python?

E.2 Einige besondere Merkmale von Python

E.3 Python 2 und 3

E.4 Hinweise zum Lesen dieses Buches

Kapitel 1: Basiskonzepte von Python

1.1 Python im interaktiven Modus

1.2 Ausführung von Python-Skripten

1.3 Die Zeilenstruktur​

1.4 Deklaration der Codierung

1.5 Bezeichner​​ (identifier​s)

1.6 Objekt​e

1.7 Die Standard-Typ-Hierarchie​​

1.8 Literal​e für einfache Datentyp​en

1.9 Namensräume​​​ – lokale und globale Namen

Kapitel 2: Sequenzen

2.1 Gemeinsame Operationen​ für Sequenzen

2.2 Zeichenkette​​n (String​s)

2.3 Tupel​

2.4 Liste​n

2.5 Performance​-Tipps

Kapitel 3: Dictionaries​

Kapitel 4: Mengen​

4.1 Der Typ set​

4.2 Der Typ frozenset​

4.3 Gemeinsame Operationen für set- und frozenset-Objekte

4.4 Mengen verändern

Kapitel 5: Operatoren​

5.1 Unäre arithmetische Operator​en + - ~

5.2 Binäre arithmetische Operator​en​ + - * / % **

5.3 Bit-Operatoren << >> & ˆ |

5.4 Vergleich​​e < <= > >= != ==

5.5 Zugehörigkeit ​ (in​​, not in​)

5.6 Identitätsvergleich (is​, is not​​)

5.7 Logische Operatoren (not​, and​, or​)

Kapitel 6: Einfache Anweisungen (Statements)​

Kapitel 7: Kontrollstrukturen​

7.1 Verzweigungen – die if​​-Anweisung

7.2 Bedingte Ausdrücke

7.3 Verzweigungen mit logischen Operatoren

7.4 Iteration​​en – die for​-Anweisung

7.5 Schleifen mit Abbruchbedingung – while​​

7.6 Abfangen von Laufzeitfehlern​ – try​​

Kapitel 8: Definition von Funktionen​

8.1 Aufruf und Ausführung einer Funktion

8.2 Funktionsnamen als Parameter

8.3 Voreingestellte Parameterwerte​

8.4 Schlüsselwort-Argumente

8.5 Funktionen mit beliebiger Anzahl von Parameter​n​

8.6 Prozedur​en

8.7 Rekursive Funktion​en​

8.8 Funktionen testen mit dem Profiler​

8.9 Lokale Funktion​en​

8.10 Generatorfunktion​​en

8.11 Lambda-Formen​

8.12 Decorator​s

Kapitel 9: Standardfunktionen (built in functions)

Kapitel 10: Fehler und Ausnahmen​​

10.1 Syntaxfehler

10.2 Ausnahmen (Exception​​s)

10.3 Erstellen einer eigenen Exception-Klasse​

10.4 Testen von Vor- und Nachbedingungen​​ mit assert​

10.5 Selbstdokumentation​ im Debugging-Modus

10.6 Das Modul logging​

Kapitel 11: Ein- und Ausgabe

11.1 Interaktive Eingabe über die Tastatur

11.2 Kommandozeilen-Argumente lesen

11.3 Formatierte Bildschirmausgabe

11.4 Lesbare Darstellung komplexer Objekte – das Modul pprint

11.5 Datei​en

11.6 Objekte speichern – pickle​

11.7 Zugriff auf beliebige Ressourcen über deren URL

Kapitel 12: Schnittstelle zum Laufzeitsystem – sys​

Kapitel 13: Schnittstelle zum Betriebssystem – os und os.path

13.1 Das Modul os​

13.2 Das Modul os.path

Kapitel 14: Datum und Zeit​​

14.1 Das Modul time

14.2 Das Modul datetime​

Kapitel 15: Objektorientierte Programmierung mit Python​

15.1 Definition von Klasse​n

15.2 Attribut​e

15.3 Methode​n

15.4 Vererbung​

15.5 Definition von Klassenbibliothek​en

Kapitel 16: Verarbeitung von Zeichenketten​

16.1 Standardmethoden für String-Objekte

16.2 Das Modul string

16.3 Formatierung​​ mit dem %-Operator

16.4 Formatstring​s

16.5 Reguläre Ausdrücke – das Modul re​

16.6 Performance​​-Tipps zur Zeichenkettenbearbeitung

Kapitel 17: Mathematische Funktionen

17.1 array​

17.2 cmath​

17.3 decimal​

17.4 math​

17.5 random​

17.6 statistics

Kapitel 18: CGI-Programmierung

18.1 CGI-Skripte erstellen

18.2 Kommunikation über HTML-Formulare

18.3 Die Klasse cgi.FieldStorage​​

18.4 Installation von CGI-Skripten​

18.5 Das Modul cgitb​​ – CGI-Skripte debuggen

18.6 Cookies​

Kapitel 19: Internet-Programmierung​

19.1 Das Modul ftplib​

19.2 Erstellen eines CGI-Webservers​

19.3 Das Modul imaplib​

19.4 Das Modul poplib​

19.5 Das Modul smtplib​

19.6 Das Modul telnetlib​

Kapitel 20: Datenbanken​

20.1 Eine MySQL-Datenbank erstellen

20.2 Das Modul MySQLdb​​ – Zugriff auf MySQL-Datenbanken

20.3 Das Modul sqlite3

Kapitel 21: Das Modul hashlib – Digitale Signaturen​​

21.1 Hashing-Objekt​e

21.2 Anwendung in der Sicherheitstechnik – Passwortgeschützte Online-Plattform

Kapitel 22: Grafische Benutzungsoberflächen​

22.1 Widgets​​ des Moduls tkinter

22.2 Die Benutzungsoberfläche als Aggregat​ von Widgets

22.3 Attribute der Widget​s (Optionen)

22.4 Standard-Methoden​ der Widgets

22.5 Die Klasse Button​​

22.6 Die Klasse Canvas​​

22.7 Checkbutton​​

22.8 Entry​​

22.9 Frame​​

22.10 Label​​

22.11 Listbox​​

22.12 Menu​​​

22.13 Menubutton​​

22.14 Die Klasse PhotoImage​​

22.15 Radiobutton​​

22.16 Scale​​

22.17 Scrollbar​​

22.18 Die Klasse Text​​

22.19 Tk​​

22.20 Layout-Manager​​

22.21 Kontrollvariable​​​n

22.22 Dialogbox​​en

22.23 Event​-Verarbeitung

Kapitel 23: Bild und Ton​​

23.1 Der Python Package Index​

23.2 Die Python Imaging Library​ (PIL​)

23.3 Klänge mit Winsound​

23.4 PlaySound()​

Kapitel 24: Threads​

24.1 Funktionen in einem Thread ausführen: start_new_thread()​

24.2 Thread-Objekte erzeugen – die Klasse Thread

24.3 Die Klasse Timer​

Kapitel 25: XML​

25.1 Das Modul xml.dom.minidom

25.2 Verarbeitung eines XML-Objektes – Einführendes Beispiel

25.3 Parsing​ – ein DOM-Objekt​ erstellen

25.4 Knoten eines DOM-Objektes – die Basisklasse Node​​

25.5 Die Klasse Document​​

25.6 Die Klasse Element​​

25.7 Die Klasse Text​

Anhang A: Ressourcen im Internet

A.1 Usenet

A.2 Mailinglisten

A.3 WWW

Anhang B: Entwicklungsumgebungen

Anhang C: Python-Module​

Anhang D: Von Python 2 zu Python 3

D.1 Unterschiede zwischen Python 2 und Python 3

D.2 Portierung nach Python 3

Anhang E: Glossar

Python GE-PACKT

Michael Weigend

Impressum

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.

ISBN 978-3-8266-8728-0

6. Auflage 2015

www.mitp.de

E-Mail: mitp-verlag@sigloch.de

Telefon: +49 7953 / 7189 - 079

Telefax: +49 7953 / 7189 - 082

© 2015 mitp Verlags GmbH & Co. KG

Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Lektorat: Sabine Schulz

Sprachkorrektorat: Petra Heubach-Erdmann

electronic publication: III-satz, Husby, www.drei-satz.de

Dieses Ebook verwendet das ePub-Format und ist optimiert für die Nutzung mit dem iBooks-reader auf dem iPad von Apple. Bei der Verwendung anderer Reader kann es zu Darstellungsproblemen kommen.

Der Verlag räumt Ihnen mit dem Kauf des ebooks das Recht ein, die Inhalte im Rahmen des geltenden Urheberrechts zu nutzen. Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheherrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und Einspeicherung und Verarbeitung in elektronischen Systemen.

Der Verlag schützt seine ebooks vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die ebooks mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert.

Bei Kauf in anderen ebook-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.

Einleitung

E.1  Was ist Python?

Python ist eine portable, interpretative, objektorientierte Programmiersprache. Ihre Entwicklung wurde 1989 von Guido van Rossum​ am Centrum voor Wiskunde en Informatica (CWI) in Amsterdam begonnen und wird nun durch die nichtkommerzielle Organisation »Python Software Foundation​« (PSF​, http://www.python.org/psf) koordiniert. Der Name soll an die britische Comedy-Gruppe Monty Python erinnern.

Ein Python-Programm – man bezeichnet es als Skript – ist ein Text, der von einem Interpreter ausgeführt werden kann. Weil Python-Skripte auf verschiedenen Systemplattformen (Unix, Windows, Mac OS) laufen können, bezeichnet man die Sprache als portabel. Die aktuelle Version von Python, auf die sich dieses Buch bezieht, ist Version 3.4 Sie kann von der Python-Homepage http://www.python.org heruntergeladen werden. Python ist kostenlos und kompatibel mit der GNU General Public License (GPL).

E.2  Einige besondere Merkmale von Python

Die Python-Syntax ermöglicht sehr kompakte Programmtexte.

Das Layout des Quelltextes dient nicht allein der besseren Lesbarkeit, sondern hat eine Bedeutung. So markiert das Zeilenende das Ende einer Anweisung. Anweisungsblöcke (wie z.B. das Innere einer Schleife) werden durch Einrückung festgelegt. Zeilen des Programmtextes, die um die gleiche Anzahl von Stellen eingerückt sind, gehören zum gleichen Anweisungsblock.

Mit Python kann man objektorientiert, imperativ und funktional programmieren.

Im Unterschied etwa zu Pascal oder Java muss den Variablen kein Datentyp explizit zugeordnet werden. Es gibt keine Variablendeklarationen. Der Datentyp ergibt sich aus dem Kontext. Wenn es erforderlich ist, finden automatische Typkonvertierungen statt.

Mehrere Variablen können zu Tupeln zusammengefasst werden, die in einer einzigen Zuweisung verarbeitet werden können. Die Komponenten eines Tupels werden durch Kommata getrennt. Durch diesen Mechanismus können Hilfsvariablen eingespart werden. So werden mit einer einzigen Anweisung x,y = y,x die Inhalte der Variablen x und y vertauscht.

In der Mathematik übliche Schreibweisen wurden in die Syntax übernommen. Ausdrücke wie a < b < c oder verkettete Zuweisungen a = b = c sind erlaubt.

Python verwendet wenige, aber sehr mächtige Sprachkonstrukte. Auf alles Überflüssige wurde verzichtet. In dieser Hinsicht kann man Python als »minimalistisch« bezeichnen.

Objekte besitzen einen Wahrheitswert. So haben alle Zahlen ungleich null und alle nicht leeren Zeichenketten den Wahrheitswert »wahr«.

Langzahl-Arithmetik (Rechnen mit ganzen Zahlen beliebiger Länge) ist integriert.

E.3  Python 2 und 3

Es ist wichtig zu wissen, dass es zwei unterschiedliche Sprachvarianten von Python gibt: Python 2 und Python 3. Im Jahre 2007 erschien mit Python 3 erstmals eine Version, die mit den Vorgänger-Versionen nicht kompatibel ist. Man entschied sich zu diesem Bruch, um einige grundlegende Designschwächen von Python zu beseitigen. Python wurde noch konsistenter, als es bereits war. Wie bei Java können nun sämtliche Unicode-Zeichen für Bezeichner und Strings verwendet werden. Man unterscheidet nun zwischen Strings als Zeichenketten und Bytestrings als Oktettenfolgen. Es gibt keine print-Anweisung mehr, sondern eine Funktion print().

Ältere Python-2-Programme können in der Regel nicht von einem Python-3-Interpreter ausgeführt werden. Die verschiedenen Python-2.x-Versionen werden aber auch weiterhin gepflegt. Ja, es sind in den vergangenen Jahren sogar neue Python-2.x-Versionen herausgekommen, zuletzt Python 2.7. Es gibt viel Software, die in Python 2.x geschrieben worden ist. Man kann davon ausgehen, dass noch für lange Zeit Python 2 und Python 3 nebeneinander existieren werden.

Dieses Buch verwendet durchgehend die Syntax von Python 3. Abweichungen bei Python 2 werden im jeweiligen Zusammenhang in gesonderten Abschnitten dargestellt. Im Anhang D finden Sie zusätzliche Hinweise zur Überführung eines Python-2.x-Programms in ein äquivalentes Programm mit Python-3-Syntax.

E.4  Hinweise zum Lesen dieses Buches

Typographie

Python-Quelltext, Funktions- und Variablennamen, Operatoren, Grammatikregeln, Zahlen und mathematische Ausdrücke werden in einem Zeichenformat mit fester Breite gesetzt. Beispiele:

x = y + 1
(x < y) and (len(liste) < 5)

Bei der Darstellung des Formats eines Funktionsaufrufs sind die Argumente kursiv. Sie sind – im Unterschied zum Funktionsnamen – Metabezeichner, die nicht Buchstabe für Buchstabe so aufgeschrieben werden, wie es angegeben ist, sondern durch andere Bezeichner oder Literale ersetzt werden können. Beispiel:

range(zahl)

Wichtige Passagen in Python-Listings, auf die im Text Bezug genommen wird, sind zuweilen fett gedruckt, um das Wiederfinden zu erleichtern.

Beispiele

Die Beispiele mit Python-Quelltext in diesem Buch kann man in drei Gruppen einteilen:

Auszüge aus einer interaktiven Session erkennt man an dem Python-Prompt >>>. Diese Beispiele kann man im Shell-Fenster einer Python-Entwicklungsumgebung (z.B. IDLE) ausprobieren. Hinter dem Prompt ist die Benutzereingabe. Zeilen ohne Prompt enthalten eine System-Antwort. Beispiel:

>>> x = 1
>>> y = 2
>>> print(x + y)
3

Beispiele für eigenständige Python-Skripte oder Module mit Funktionsdefinitionen enthalten überhaupt kein Prompt. Sie werden in einem Editorfenster erstellt und dann durch Aufruf des Interpreters oder nach Import in einer interaktiven Session getestet. Beispiel:

# Quicksort
def qsort(L):
   if len(L) <= 1: return L
   else:
      return qsort( [ x for x in L[1:] if x < L[0]])\
           + [L[0]]  \
           + qsort( [y for y in L[1:] if y >= L[0]] )

Für Aufrufe in einem Konsolenfenster des Betriebssystems (z.B. Unix-Shell oder MS-DOS-Eingabeaufforderung) verwenden wir das Prompt >. Beispiel:

> python addiere.py 1 27
28

Hinweise zum Aufbau der Kapitel

Am Ende eines Unterkapitels mit einer Funktionsbeschreibung finden sich häufig Verweise auf andere Kapitel mit korrespondierendem Inhalt (»Siehe auch: ...«)

Kapitel, in denen Module beschrieben werden, sind meist nach folgendem Schema aufgebaut:

Kurze Einleitung

Tabellarische Übersicht über die Objekte (Funktionen, Konstanten, Klassen, Methoden) des Moduls in alphabetischer Reihenfolge

Ausführliche Erklärung der wichtigsten Objekte mit Beispielen

Am Ende gelegentlich komplexere Anwendungsbeispiele

Programmiertipps und wichtige Hinweise befinden sich in grauen Kästen.

Kapitel 1:Basiskonzepte von Python

1.1Python im interaktiven Modus

Der Python-Interpreter kann in einem interaktiven Modus​ verwendet werden, in dem Sie einzelne Zeilen Programmtext eingeben und die Wirkung sofort beobachten können. Im interaktiven Modus können Sie mit Python experimentieren, etwa um sich in neue Programmiertechniken einzuarbeiten oder logische Fehler in einem Programm, das Sie gerade bearbeiten, aufzuspüren.

Der interaktive Python-Interpreter – die Python-Shell​ – kann auf verschiedene Weise gestartet werden:

In einem Konsolenfenster (z.B. Eingabeaufforderung bei Windows-Systemen) geben Sie das Kommando python ein. Damit das Betriebssystem den Python-Interpreter findet, muss der Systempfad richtig gesetzt sein. Unter Windows 7 klicken Sie auf den Start-Button links unten. Klicken Sie mit der rechten Maustaste auf Computer und wählen Sie im Kontextmenü den Punkt Eigenschaften. Wählen Sie den Link Erweiterte Systemeinstellungen. Es öffnet sich ein neues Fenster mit dem Titel Systemeigenschaften. Klicken Sie auf der Registerkarte Erweitert unten auf die Schaltfläche Umgebungsvariablen. Wählen Sie die Systemvariable Path und klicken Sie auf Bearbeiten. In dem Feld Wert der Variablen bringen Sie den Cursor an das Ende der Zeichenfolge und hängen den folgenden Text an:

;C:\Python34

Bei Windows-Rechnern klicken Sie im Menü Start|Alle Programme| Python3.4 das Programm-Icon Python (command line) an.

Sie öffnen die Entwicklungsumgebung IDLE, die zum Standardpaket gehört. Sie enthält neben einem Editorfenster ein eigenes Shell-Fenster, in dem man auf der Kommandozeile Python-Statements eingeben kann.

Die Python-Shell meldet sich immer mit einer kurzen Information über die Version und einigen weiteren Hinweisen. Dann folgt der charakteristische Promptstring aus drei spitzen Klammern >>> als Eingabeaufforderung. Hinter dem Prompt können Sie eine Anweisung eingeben und durch Return beenden. In den nächsten Zeilen kommt entweder eine Fehlermeldung, ein Funktionsergebnis oder (z.B. bei Zuweisungen) keine Systemantwort. Beispiel:

>>> 2+2
4

Wichtige Tastenkombinationen

Es lohnt sich, einige wenige Tastenkombinationen zur effizienten Bedienung der Python-Shell auswendig zu lernen:

Vorige Anweisung. Mit der Tastenkombination Alt+p können Sie den vorigen Befehl (previous command) noch einmal in die Kommandozeile schreiben. Drücken Sie mehrmals diese Tastenkombination, werden die noch weiter zurückliegenden Anweisungen geholt.

Nächste Anweisung. Wenn Sie mehrmals auf Alt+p gedrückt haben, können Sie mit Alt+N wieder zum nächstneueren Kommando springen (next command).

Keyboard Interrupt. Mit der Tastenkombination Strg+C können Sie den Abbruch eines laufenden Programms erzwingen. Das ist z.B. für das Testen von Programmen mit while-Anweisungen wichtig, weil eventuell eine Endlosschleife vorliegt und das Programm von alleine nicht anhält.

1.2Ausführung von Python-Skripten

Python-Programme – meist nennt man sie Skripte – sind Textdateien, die unter einem Namen mit der Extension .py oder unter Windows auch .pyw abgespeichert werden, z.B. hello.py. Ein Python-Skript wird von einem Python-Interpreter ausgeführt (interpretiert), der letztlich den Programmtext in maschinenbezogene Befehle überführt. Das heißt: Das Skript ist plattformunabhängig, aber für jedes Betriebssystem gibt es einen eigenen Interpreter. Um ein Python-Skript ausführen zu können, muss dem Betriebssystem auf irgendeine Weise mitgeteilt werden, welches Programm es zur Interpretation einsetzen soll. Voraussetzung für die Ausführung eines Skripts ist, dass Python installiert und Systempfade, Umgebungsvariablen usw. korrekt gesetzt sind.

Grundsätzlich kann ein Python-Skript von einer Entwicklungsumgebung (z.B. IDLE) aus gestartet werden. Darüber hinaus gibt es folgende plattformabhängigen Möglichkeiten.

Windows

Unter Windows​ können Sie ein Python-Skript auf zweierlei Weise ausführen:

Öffnen Sie ein Konsolenfenster (Eingabeaufforderung) und geben Sie das Kommando gefolgt vom Pfad des Python-Skripts ein. Beispiel:

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!