Python von Kopf bis Fuß - Paul Barry - E-Book

Python von Kopf bis Fuß E-Book

Paul Barry

0,0

Beschreibung

Was lernen Sie in diesem Buch? Haben Sie sich schon einmal gewünscht, Sie könnten mit nur einem Buch Python richtig lernen? Mit Python von Kopf bis Fuß schaffen Sie es! Durch die ausgefeilte Von-Kopf-bis-Fuß-Didaktik, die viel mehr als die bloße Syntax und typische How-to-Erklärungen bietet, wird es sogar zum Vergnügen. Python-Grundlagen wie Datenstrukturen und Funktionen verstehen Sie hier schnell, und dann geht es auch schon weiter: Sie programmieren Ihre eigene Web-App, erkunden Datenbank-Management, Ausnahmebehandlung und die Verarbeitung von Daten. Da Python häufig im Data-Science-Umfeld eingesetzt wird, haben in der 2. Auflage diejenigen Techniken ein stärkeres Gewicht bekommen, die in der Welt der Big Data genutzt werden. Wieso sieht dieses Buch so anders aus? In diesem Buch sind die neuesten Erkenntnisse der Kognitionswissenschaft und der Lerntheorie eingeflossen, um Ihnen das Lernen so einfach wie möglich zu machen. Statt einschläfernder Bleiwüsten verwendet dieses Buch eine Vielzahl von Abbildungen und Textstilen, die Ihnen das Wissen direkt ins Hirn spielen – und zwar so, dass es sitzt.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 596

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Pythonvon Kopf bis Fuß

Zweite Auflage

Paul Barry

Deutsche Übersetzungvon Jørgen W. Lang

Paul Barry

Lektorat: Alexandra Follenius

Übersetzung: Jørgen W. Lang

Korrektorat: Sibylle Feldmann, www.richtiger-text.de

Satz: Ulrich Borstelmann, www.borstelmann.de

Herstellung: Susanne Bröckelmann

Umschlaggestaltung: Michael Oréal, www.oreal.de

Druck und Bindung: M.P. Media-Print Informationstechnologie GmbH, 33100 Paderborn

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:

Print     978-3-96009-035-9

PDF      978-3-96010-135-2

ePub     978-3-96010-136-9

mobi     978-3-96010-137-6

Dieses Buch erscheint in Kooperation mit O’Reilly Media, Inc. unter dem Imprint »O’REILLY«.O’REILLY ist ein Markenzeichen und eine eingetragene Marke von O’Reilly Media, Inc. und wird mit Einwilligung des Eigentümers verwendet.

2. Auflage 2017

Copyright © 2017 by dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Authorized German translation of the English edition of Head First Python, 2nd Edition, ISBN 978-1-4919-1953-8 © 2016 Paul Barry. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.

Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler und deren Folgen.

5 4 3 2 1 0

Zu diesem Buch – sowie zu vielen weiteren O’Reilly-Büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei oreilly.plus+:

www.oreilly.plus

Ich widme dieses Buch auch weiterhin den großzügigen Menschen in der Python-Gemeinschaft, die daran mitgewirkt haben, Python zu dem zu machen, was es heute ist.

Und denen, die das Lernen von Python und seinen Technologien immerhin so komplex gemacht haben, dass ein Buch wie dieses beim Erlernen eine Hilfe sein kann.

DerAutor

Über den Autor von Python von Kopf bis Fuß, 2. Auflage

Paul Barry lebt und arbeitet in Carlow, Irland, einer kleinen Stadt mit etwa 35.000 Einwohnern ca. 80 km südwestlich der Hauptstadt Dublin.

Paul hat einen Titel als B.Sc. in Information Systems sowie als M.Sc. in Computing. Außerdem besitzt er eine Lehrerlaubnis im Bereich Learning and Teaching.

Paul arbeitet seit 1995 am Institute of Technology, Carlow und hält dort seit 1997 Vorlesungen. Vor seiner Lehrtätigkeit verbrachte Paul ein Jahrzehnt in der IT-Industrie und arbeitete in Irland und Kanada, meistens im Gesundheitswesen. Paul ist mit Deirdre verheiratet, und gemeinsam haben sie drei Kinder (Joseph, Aaron und Aideen, von denen zwei inzwischen selbst studieren).

Die Programmiersprache Python und verwandte Technologien sind seit 2007 ein integraler Bestandteil von Pauls Vordiplom-Kursen.

Paul ist Autor (oder Koautor) von vier weiteren technischen Büchern: zwei über Python und zwei über Perl. In der Vergangenheit hat er als Redakteur für das Linux Journal Magazine eine Menge Artikel geschrieben.

Aufgewachsen ist Paul in Belfast, Nordirland, was seine Persönlichkeit und seinen lustigen Akzent erklärt (es sei denn, Sie stammen selbst »aus dem Norden«, und empfinden Pauls Wesen und Akzent als vollkommen normal).

Paul finden Sie auf Twitter (@barrypj) und auf seiner Website unter: http://paulbarry.itcarlow.ie.

Inhaltsverzeichnis

Der Inhalt (im Überblick)

1

Die Grundlagen: Volle Kraft voraus!

2

Listendaten: Mit geordneten Daten arbeiten

3

Strukturierte Daten: Mit strukturierten Daten arbeiten

4

Code wiederverwenden: Funktionen und Module

5

Eine Webapplikation erstellen: Auf ins wahre Leben!

6

Daten speichern und bearbeiten: Wo kommen die Daten hin?

7

Datenbanken benutzen: Die DB-API von Python verwenden

8

Ein bisschen Klasse: Verhalten und Zustand abstrahieren

9

Das Kontextmanagement-Protokoll: Sich in Pythons with-Anweisung einklinken

10

Funktionsdekoratoren: Funktionen verpacken

11

Mit Ausnahmen umgehen: Was zu tun ist, wenn mal etwas schiefgeht

11¾

Ein bisschen Threading: Taten statt Warten

12

Fortgeschrittene Iteration: Schleifen wie verrückt

A

Installation: Python installieren

B

PythonAnywhere: Ihre Webapplikation bereitstellen

C

Die 10 wichtigsten Dinge, die wir nicht behandelt haben: Es gibt immer noch etwas zu lernen

D

Die 10 wichtigsten Projekte, die wir nicht behandelt haben: Noch mehr Werkzeuge, Bibliotheken und Module

E

Mitmachen: Die Python-Gemeinschaft

 

Index

Der Inhalt (jetzt ausführlich)

Einführung

Ihr Gehirn und Python.Sie versuchen, etwas zu lernen, und Ihr Hirn tut sein Bestes, damit das Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten lieber ordentlich Platz für wichtigere Dinge lassen, z. B. für das Wissen darüber, welche Tiere einem gefährlich werden könnten, oder dass es eine ganz schlechte Idee ist, nackt Snowboard zu fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen, dass Ihr Leben davon abhängt, wie man in Python programmiert?

Für wen ist dieses Buch?

Wir wissen, was Sie gerade denken

Und wir wissen, was Ihr Gehirn gerade denkt

Metakognition: Nachdenken übers Denken

Das haben WIR getan

Lies mich

Die Grundlagen

1Volle Kraft voraus!

Finden Sie einen möglichst schnellen Einstieg in die Programmiersprache Python. In diesem Kapitel geben wir Ihnen einen Einblick in die Grundlagen der Python-Programmierung, und zwar wie es bei Von Kopf bis Fuß-Büchern üblich ist: indem wir gleich loslegen. Nach ein paar Seiten ist Ihr erstes Programm bereits lauffähig. Am Ende des Kapitels können Sie nicht nur Ihr Beispielprogramm ausführen, sondern auch den Code verstehen (und noch einiges mehr). Unterwegs lernen Sie ein paar der Dinge, die Python als Programmiersprache ausmachen. Lassen Sie uns also keine Zeit verschwenden. Blättern Sie um, und los geht‘s!

Die IDLE-Fenster verstehen

Code ausführen, eine Anweisung nach der anderen

Datenstrukturen sind schon eingebaut

Methodenaufrufe haben Ergebnisse

Entscheiden, wann Codeblöcke ausgeführt werden

Welche »else« will schon mit »if«?

Suiten können selbst Suiten enthalten

Zurück zur Python-Shell

Experimente auf der Shell

Über eine Folge von Objekten iterieren

Eine bestimmte Anzahl von Wiederholungen ausführen

Das Ergebnis von Aufgabe 1 auf unseren Code anwenden

Die Ausführung unterbrechen

Zufallszahlen mit Python erzeugen

Eine ernsthafte Businessapplikation programmieren

Machen die Einrückungen Sie verrückt?

Mit dem help-Befehl des Interpreters den Hilfetext zu einer Funktion anzeigen

Mit Wertebereichen experimentieren

Der Code aus Kapitel 1

Listendaten

2Mit geordneten Daten arbeiten

Alle Programme verarbeiten Daten, und Python-Programme sind da keine Ausnahme. Sehen Sie sich einmal um: Daten sind überall. Programmierung hat fast immer mit Daten zu tun: Daten sammeln, Daten verarbeiten, Daten verstehen. Um effektiv damit arbeiten zu können, brauchen Sie einen Ort, um Ihre Daten abzulegen. Dank einiger äußerst vielseitiger Datenstrukturen kann Python hier besonders punkten: Listen, Dictionaries, Tupel und Sets. In diesem Kapitel werden wir alle vier vorstellen, den Großteil des Kapitels werden wir uns jedoch eingehend mit Listen befassen. (Die anderen drei Strukturen werden wir in Kapitel 3 genauer betrachten.) Wir gehen absichtlich so früh auf diese Datenstrukturen ein, da die meisten Arbeiten in Python mit Daten zu tun haben.

Zahlen, Strings … und Objekte

Die vier eingebauten Datentypen

Eine ungeordnete Datenstruktur: Dictionary

Eine Datenstruktur ohne Duplikate: Set

Literale Erzeugung von Listen

Wenn Sie mit mehr als ein paar Codezeilen arbeiten, sollten Sie den Editor benutzen

Eine Liste zur Laufzeit »wachsen lassen«

Zugehörigkeit mit »in« überprüfen

Objekte aus einer Liste entfernen

Eine Liste mit Objekten erweitern

Objekte in eine Liste einfügen

Datenstrukturen richtig kopieren

Listen erweitern die Schreibweise der eckigen Klammern

Listen verstehen start, stop und step

start- und stop-Werte für Listen

Listen mithilfe von Slices bearbeiten

Pythons »for«-Schleife versteht Listen

Marvins Slices im Detail

Wann man Listen nicht benutzen sollte

Der Code aus Kapitel 2, 1 von 2

Strukturierte Daten

3Mit strukturierten Daten arbeiten

Pythons Listen sind eine großartige Datenstruktur, aber kein Allheilmittel. Wenn Sie mit wirklich strukturierten Daten arbeiten müssen (und eine Liste zum Speichern nicht geeignet ist), kann Pythons eingebaute Dictionary-(Wörterbuch-)Struktur möglicherweise helfen. Sammlungen von Schlüssel/Wert-Paaren lassen sich problemlos speichern und bearbeiten. Wir werden Pythons Dictionary-Struktur in diesem Kapitel eingehend untersuchen und Ihnen dabei auch gleich Sets und Tupel vorstellen. Gemeinsam mit Listen (bekannt aus dem vorigen Kapitel) bieten Dictionary, Set und Tupel eine Reihe vorgefertigter Datenstrukturen, die die Arbeit mit Daten in Python deutlich erleichtern.

Ein Dictionary speichert Schlüssel/Wert-Paare

Dictionaries im Code erkennen

Reihenfolge des Einfügens wird NICHT beibehalten

Werte mithilfe eckiger Klammern nachschlagen

Zur Laufzeit mit Dictionaries arbeiten

Einen Frequenzzähler aktualisieren

Über ein Dictionary iterieren

Über Schlüssel und Werte iterieren

Mithilfe von »items« über ein Dictionary iterieren

Wie dynamisch sind Dictionaries wirklich?

KeyError-Laufzeitfehler vermeiden

Vorhandensein mit »in« überprüfen

Initialisierung vor Gebrauch sicherstellen

»in« durch »not in« ersetzen

Die »setdefault«-Methode verwenden

Sets effektiv erzeugen

Set-Methoden sinnvoll nutzen

Ein Plädoyer für Tupel

Eingebaute Datenstrukturen kombinieren

Auf Daten einer komplexen Datenstruktur zugreifen

Der Code aus Kapitel 3, Seite 1 von 2

Name: Ford Prefect

Gender: Male

Occupation: Researcher

Home Planet: Betelgeuse Seven

Code wiederverwenden

4Funktionen und Module

Die Wiederverwendbarkeit von Code ist Voraussetzung für ein wartbares System. Und bei Python ist Anfang und Ende aller Wiederverwendbarkeit die Funktion. Nehmen Sie ein paar Codezeilen, geben Sie ihnen einen Namen, und schon haben Sie eine (wiederverwendbare) Funktion. Nehmen Sie eine Sammlung von Funktionen und packen Sie sie in eine eigene Datei, und schon haben Sie ein Modul (das ebenfalls wiederverwendet werden kann). Es stimmt schon: Teilen hilft. Am Ende dieses Kapitels werden Sie wissen, wie Code mithilfe von Pythons Funktionen und Modulen wiederverwendet und mit anderen geteilt werden kann.

Code mithilfe von Funktionen wiederverwenden

Einführung in Funktionen

Rufen Sie Ihre Funktionen auf

Funktionen können Argumente übernehmen

Einen Wert zurückgeben

Mehr als einen Wert zurückgeben

Eingebaute Datenstrukturen: Wiederholung

Eine allgemein nützliche Funktion erstellen

Eine neue Funktion erstellen, 1 von 3

Standardwerte für Argumente definieren

Positionelle und Schlüsselwortzuweisung im Vergleich

Aktualisierung unseres Wissens über Funktionen

Python auf der Kommandozeile ausführen

Die erforderlichen Setup-Dateien erstellen

Eine Distributionsdatei erstellen

Pakete mit »pip« installieren

Demonstration von Werteparametern

Demonstration von Referenzparametern

Die Entwicklerwerkzeuge zum Testen installieren

Wie PEP 8-konform ist unser Code?

Die Fehlermeldungen verstehen

Der Code aus Kapitel 4

module

Eine Webapplikation erstellen

5Auf ins wahre Leben!

Jetzt kennen Sie genug Python, um richtig loszulegen. Nachdem Sie die ersten vier Kapitel dieses Buchs gemeistert haben, sind Sie in der Lage, Python in jeder Programmiersituation einzusetzen (obwohl es noch eine Menge zu lernen gibt). Anstatt die lange Liste verschiedener Programme abzuarbeiten, wollen wir uns in den folgenden Kapiteln mit der Erstellung einer webbasierten Applikation beschäftigen – einem Bereich, in dem Python besonders stark ist. Unterwegs werden Sie etwas mehr über Python lernen. Bevor wir loslegen, wollen wir Ihre bisherigen Python-Kenntnisse aber noch ein wenig auffrischen.

Python: Was Sie bereits wissen

Was soll unsere Webapplikation können?

Flask installieren

Wie funktioniert Flask?

Die Flask-Web-App zum ersten Mal ausführen

Ein Flask-Webapplikationsobjekt erzeugen

Eine Funktion mit einer URL dekorieren

Das Verhalten Ihrer Webapplikation testen

Funktionalität im Web bereitstellen

Das HTML-Formular erstellen

Templates beziehen sich auf Webseiten

Templates mit Flask rendern

Das Formular der Webapplikation anzeigen

Vorbereitungen zum Ausführen des Template-Codes

HTTP-Statuscodes verstehen

Mit POST-Daten umgehen

Den Zyklus aus Bearbeiten, Anhalten, Starten und Testen optimieren

Mit Flask auf Formulardaten zugreifen

Die Formulardaten in der Webapplikation verwenden

Die Ergebnisse als HTML ausgeben

Die Webapplikation für die Cloud vorbereiten

Der Code aus Kapitel 5

Daten speichern und bearbeiten

6Wo kommen die Daten hin?

Früher oder später müssen Sie Ihre Daten irgendwo sicher speichern. Und wenn es um Datenspeicherung geht, ist Python ganz für Sie da. In diesem Kapitel lernen Sie, wie man Daten in Textdateien speichert und sie wieder ausliest. Das erscheint einem als Speichermechanismus vielleicht ein wenig simpel, wird aber in vielen Problembereichen eingesetzt. Neben dem Speichern und Auslesen von Daten aus Dateien werden Sie außerdem noch ein paar Tricks zum Bearbeiten von Daten erfahren. Das »ernste Zeug« (Daten in einer Datenbank speichern) heben wir uns für das folgende Kapitel auf, trotzdem wird uns die Arbeit mit Dateien jetzt schon ganz ordentlich auf Trab halten.

Etwas mit den Daten Ihrer Webapplikation anstellen

Python unterstützt die Öffnen-Bearbeiten-Schließen-Technik

Daten aus einer bestehenden Datei lesen

Eine bessere Version von Öffnen-Bearbeiten-Schließen: »with«

Das Protokoll von der Webapplikation anzeigen lassen

Die Rohdaten per »Quelltext anzeigen« untersuchen

Es ist Zeit, Ihre Daten zu escapen

Die gesamte Log-Datei in der Webapplikation betrachten

Bestimmte Attribute des Web-Requests protokollieren

Eine Zeile voneinander getrennter Datenfelder protokollieren

Von Rohdaten zu lesbaren Ausgaben

Lesbare Ausgaben mit HTML erzeugen

Darstellungslogik in das Template integrieren

Mit Jinja2 lesbare Ausgaben erzeugen

Der aktuelle Status Ihres Webapplikationscodes

Die Daten befragen

Der Code aus Kapitel 6

Datenbanken benutzen

7Die DB-API von Python verwenden

Datenspeicherung in einer relationalen Datenbank ist praktisch. In diesem Kapitel lernen Sie, Code für die Zusammenarbeit mit der beliebten MySQL-Datenbank zu schreiben. Hierfür verwenden wir eine allgemeine Datenbankschnittstelle namens DB-API. Mit dieser API (Teil der Python-Standardinstallation) können Sie Code schreiben, der sich leicht zwischen verschiedenen Datenbankprodukten austauschen lässt – sofern die verwendete Datenbank SQL versteht. Wir werden MySQL als Datenbank benutzen, der DB-API-Code kann aber auch mit einer beliebigen anderen relationalen Datenbank verwendet werden. Zunächst wollen wir sehen, was für den Einsatz relationaler Datenbanken mit Python gebraucht wird. In diesem Kapitel gibt es eher wenig neuen Python-Code. Allerdings ist der Einsatz von Python für die Kommunikation mit Datenbanken ein sehr wichtiges Thema, über das man auf jeden Fall Bescheid wissen sollte.

Die Webapplikation für die Benutzung von Datenbanken vorbereiten

Aufgabe 1: Den MySQL-Server installieren

Einführung in die DB-API von Python

Aufgabe 2: Einen MySQL-Datenbanktreiber für Python installieren

MySQL-Connector/Python installieren

Aufgabe 3: Die Datenbank und die nötigen Tabellen für die Webapplikation erstellen

Eine Struktur für Ihre Log-Daten definieren

Bestätigen Sie, dass die Tabelle für die Daten bereit ist

Aufgabe 4: Den Code für die Datenbank und die Tabellen unserer Webapplikation schreiben

Daten speichern ist die halbe Miete

Wie kann der Datenbankcode am besten wiederverwendet werden?

Überlegen Sie, was Sie hier wiederverwenden wollen

Und was ist mit import?

Sie kennen dieses Muster bereits

So schlecht sind die schlechten Nachrichten gar nicht

Der Code aus Kapitel 7

Ein bisschen Klasse

8Verhalten und Zustand abstrahieren

Klassen speichern Verhalten und Zustand gemeinsam. In diesem Kapitel legen wir die Webapplikation zur Seite und beschäftigen uns stattdessen mit Python-Klassen. Der Anlass ist, dass wir mithilfe einer Python-Klasse einen Kontextmanager erstellen wollen. Und weil die Erstellung und Programmierung von Klassen sowieso wissenswert ist, haben wir ihnen dieses Kapitel gewidmet. Sie werden hier nicht alles über Klassen lernen, aber wir wollen zumindest die Dinge ansprechen, die Sie brauchen, um für die Erstellung des Kontextmanagers Ihrer Webapplikation fit zu werden. Dann wollen wir mal schauen, worum es hier eigentlich geht.

Sich in die »with«-Anweisung einklinken

Kurze Einführung in Objektorientierung

Objekte aus Klassen erzeugen

Objekte übernehmen das Verhalten, aber nicht den Zustand

Mehr mit CountFromBy anfangen

Methodenaufrufe: Die Details verstehen

Methoden einer Klasse hinzufügen

Die Bedeutung von »self«

Die Gültigkeit von Geltungsbereichen

Stellen Sie Ihren Attributnamen »self« voran

(Attribut-)Werte vor Gebrauch initialisieren

__init__ initialisiert Attribute

Attribute mit »__init__« initialisieren

Die Darstellung von CountFromBy verstehen

Die Darstellung von CountFromBy selbst definieren

Sinnvolle Standardwerte für CountFromBy

Klassen: Was wir bereits wissen

Der Code aus Kapitel 8

Das Kontextmanagement-Protokoll

9Sich in Pythons with-Anweisung einklinken

Es ist Zeit, das Gelernte anzuwenden. In Kapitel 7 haben wir über die Verwendung einer relationalen Datenbank mit Python gesprochen, während Kapitel 8 eine Einführung in Python-Klassen enthielt. Nun werden wir beide Techniken kombinieren, um einen Kontextmanager zu erstellen. Dieser soll die with-Anweisung so erweitern, dass sie auch mit relationalen Datenbanken funktioniert. In diesem Kapitel klinken Sie sich in die with-Anweisung ein, indem Sie eine neue Klasse erstellen, die mit Pythons Kontextmanagement-Protokoll konform ist.

Wie können wir den Code unserer Webapplikation am besten mit anderen teilen?

Kontext anhand von Methoden verwalten

Sie kennen den Kontextmanager bereits

Eine neue Klasse für den Kontextmanager erstellen

Die Klasse mit der Datenbankkonfiguration initialisieren

Setup mit »__enter__«

Teardown mit »__exit__«

Den Code der Webapplikation überdenken, Teil 1 von 2

Die »log_request«-Funktion auf dem Prüfstand

Die »log_request«-Funktion anpassen

Die »view_the_log«-Funktion auf dem Prüfstand

Nicht nur der Code ändert sich

Die »view_the_log«-Funktion anpassen

Die Datenfragen beantworten

Der Code aus Kapitel 9, 1 von 2

Funktionsdekoratoren

10 Funktionen verpacken

Für die Erweiterung von Code gibt es neben dem Kontextmanagement-Protokoll auch noch andere Optionen. In Python können Sie auch Funktionsdekoratoren benutzen. Damit können Sie Funktionscode erweitern, ohne diesen zu verändern. Auf den ersten Blick erscheint das wie schwarze Magie, aber keine Sorge: So schlimm ist es nicht. Trotzdem sehen viele Python-Programmierer das Schreiben von Funktionsdekoratoren als eher schwierig an. Dadurch werden Dekoratoren weniger eingesetzt als eigentlich sinnvoll. In diesem Kapitel wollen wir Ihnen zeigen, dass die Erstellung und Verwendung eigener Dekoratoren nicht so schwer ist, wie oft behauptet wird.

Der Webserver (nicht Ihr Computer) führt den Code aus

Zustandsverwaltung mit Flasks Sessions

Den Zustand im Dictionary nachschlagen

Anmeldevorgänge mit Sessions verwalten

Log-out und Status überprüfen

Eine Funktion an eine Funktion übergeben

Eine übergebene Funktion aufrufen

Eine Liste mit Argumenten übernehmen

Eine Liste mit Argumenten verarbeiten

Ein Dictionary mit Argumenten übernehmen

Ein Dictionary mit Argumenten verarbeiten

Funktionsargumente von beliebiger Zahl und beliebigem Typ übernehmen

Einen Funktionsdekorator erstellen

Der letzte Schritt: Mit Argumenten umgehen

Der Dekorator im praktischen Einsatz

Zurück zur Zugangsbeschränkung für /viewlog

Der Code aus Kapitel 10, Teil 1 von 2

Mit Ausnahmen umgehen

11 Was zu tun ist, wenn mal etwas schiefgeht

Egal wie gut Ihr Code ist, irgendetwas geht immer schief. Sie haben alle Beispiele in diesem Buch erfolgreich durchgearbeitet und sind sich ziemlich sicher, dass der bisherige Code auch funktioniert. Aber ist der deshalb wirklich robust? Vermutlich nicht. Es ist (bestenfalls) naiv, zu glauben, man könne Code schreiben und es würde schon alles gut gehen. Vorsicht ist hier deutlich besser als Vertrauensseligkeit. Wenn Ihr Code auch dann noch funktionieren soll, wenn die Dinge aus dem Ruder laufen, müssen Sie sorgfältig vorgehen. In diesem Kapitel zeigen wir nicht nur, was alles schiefgehen kann, sondern auch, was in solchen Fällen (oder oft sogar davor) zu tun ist.

Datenbanken sind nicht immer verfügbar

Angriffe aus dem Web können richtig nerven

Ein- und Ausgaben sind (manchmal) langsam

Funktionsaufrufe können fehlschlagen

Versuchen Sie immer, möglicherweise fehlerhaften Code auszuführen

Ein try, viele excepts

Ein Handler, sie zu knechten …

Mit »sys« mehr über Ausnahmen erfahren

Noch mal: der »catch all«-Ausnahme-Handler

Zurück zum Code unserer Webapplikation

Ausnahmen leise handhaben

Mit anderen Datenbankfehlern umgehen

Vermeiden Sie eng verbundenen Code

Wiedersehen mit dem DBcm-Modul

Eigene Ausnahmen erstellen

Was kann mit »DBcm« noch schiefgehen?

Die Behandlung von SQLError funktioniert anders

Einen SQLError auslösen

Ein schneller Rückblick: Robustheit hinzufügen

Wie mit Wartezeiten umgehen? Kommt drauf an …

Der Code aus Kapitel 11, 1 von 3

...

Exception

+-- StopIteration

+-- StopAsyncIteration

+-- ArithmeticError

| +-- FloatingPointError

| +-- OverflowError

| +-- ZeroDivisionError

+-- AssertionError

+-- AttributeError

+-- BufferError

+-- EOFError

...

Ein bisschen Threading

11¾ Taten statt Warten

Manchmal braucht Code wirklich ziemlich lang für die Ausführung. Abhängig davon, wem das auffällt, kann das ein Problem sein oder nicht. Wenn Ihr Code »hinter den Kulissen« 30 Sekunden für die Ausführung braucht, ist die Wartezeit vermutlich kein Thema. Wenn aber ein Benutzer 30 Sekunden auf eine Antwort Ihrer Applikation wartet, merkt das jeder. Die Lösung hängt davon ab, welche Aufgabe Ihre Applikation hat (und wer warten muss). In diesem kurzen Kapitel zeigen wir ein paar mögliche Optionen und sehen uns dann eine Lösung für das tatsächliche Problem an: Was passiert, wenn etwas sehr lange dauert?

Warten: Was ist zu tun?

Wie fragen Sie Ihre Datenbank ab?

Datenbank-INSERTs und -SELECTs sind verschieden

Mehrere Dinge gleichzeitig tun

Keine Sorge. Benutzen Sie Threads

Das Wichtigste zuerst: keine Panik

Keine Sorge: Flask kann helfen

Ist Ihre Webapplikation jetzt robust?

Der Code aus Kapitel 11¾, 1 von 2

Fortgeschrittene Iteration

12 Schleifen wie verrückt

Es ist erstaunlich, wie viel Zeit unsere Programme in Schleifen verbringen. Das überrascht nicht, weil die meisten Programme die gleiche Aufgabe viele Male durchführen müssen. Für die Optimierung von Schleifen gibt es zwei Ansätze: 1. die Verbesserung der Schleifensyntax (um die Definition einer Schleife zu erleichtern) und 2. die Verbesserung der Schleifenausführung (um sie schneller zu machen). Als Python 2 noch jung war (also vor sehr, sehr langer Zeit), haben die Designer der Sprache ein Merkmal entwickelt, das beide Ansätze implementiert. Es nennt sich Comprehension (eine Form der Abstraktion). Lassen Sie sich durch den seltsamen Namen nicht täuschen. Am Ende dieses Kapitels werden Sie sich fragen, wie Sie bisher ohne Comprehensions leben konnten.

CSV-Daten als Listen einlesen

CSV-Daten als Dictionaries einlesen

Rohdaten säubern und trennen

Vorsicht beim Verketten von Methodenaufrufen

Daten in das benötigte Format umwandeln

Die Daten in ein Dictionary mit Listen umwandeln

Das Programmiermuster bei Listen erkennen

Programmiermuster in Comprehensions umwandeln

Ein genauerer Blick auf Comprehensions

Eine Dictionary-Comprehension definieren

Comprehensions mit Filtern erweitern

Pythons Weg für den Umgang mit Komplexität

Set-Comprehensions in Aktion

Und was ist mit »Tupel-Comprehensions«?

URLs mit einer Listen-Comprehension verarbeiten

URLs mit einem Generator verarbeiten

Definieren Sie, was Ihre Funktion tun soll

Die Macht der Generatorfunktionen

Die Generatorfunktion aufspüren, Teil 1 von 2

Eine letzte Frage

Der Code aus Kapitel 12

Wir sind dann mal weg …

Installation

APython installieren

Das Wichtigste zuerst: Wir wollen Python auf Ihrem Computer installieren. Egal ob Sie Windows, macOS oder Linux im Einsatz haben, Python ist für Sie da. Wie das im Einzelnen geht, hängt vom verwendeten Betriebssystem ab (ja, wissen wir – eine Riesenüberraschung, oder?). Die Python-Community arbeitet hart daran, für alle beliebten Plattformen einen Installer bereitzustellen. In diesem kurzen Anhang zeigen wir Ihnen, wie Sie Python auf Ihrem Computer installieren können.

Python 3 unter Windows installieren

Python 3 unter Windows testen

Python 3 unter Windows ergänzen

Python 3 unter Mac OS X (macOS) installieren

Python 3 unter macOS konfigurieren und testen

Python 3 unter Linux installieren

PythonAnywhere

BIhre Webapplikation bereitstellen

Am Ende von Kapitel 5 haben wir behauptet, dass die Bereitstellung Ihrer Webapplikation in der Cloud nur zehn Minuten dauert. Das Versprechen wollen wir jetzt einlösen. In diesem Anhang zeigen wir Ihnen, wie Sie Ihre Webapplikation über PythonAnywhere bereitstellen können – und zwar in nur zehn Minuten. PythonAnywhere ist bei Python-Programmierern sehr beliebt, und der Grund liegt auf der Hand: Die Plattform funktioniert exakt wie erwartet, bietet großartige Unterstützung für Python (und Flask) – und das Beste daran: Sie können Ihre Webapplikation dort kostenlos unterstellen. Sehen wir uns PythonAnywhere einmal genauer an.

Schritt 0: Etwas Vorbereitung

Schritt 1: Bei PythonAnywhere registrieren

Schritt 2: Die Dateien in die Cloud hochladen

Schritt 3: Den Code extrahieren und installieren

Schritt 4: Eine Starter-Webapplikation erstellen, 1 von 2

Schritt 5: Die Webapplikation konfigurieren

Schritt 6: Drehen Sie eine Runde mit Ihrer cloudbasierten Webapplikation!

Die 10 wichtigsten Dinge, die wir nicht behandelt haben

CEs gibt immer noch etwas zu lernen

Wir hatten nie die Absicht, alles zu behandeln.Das Ziel dieses Buchs war, Ihnen genug Python zu zeigen, um Sie möglichst schnell auf den Weg zu bringen. Wir hätten deutlich mehr behandeln können, haben wir aber nicht. Hier besprechen wir die zehn wichtigsten Dinge, die wir – auf vielleicht weiteren 600 Seiten – auch noch hätten besprechen können. Vermutlich werden Sie nicht alle davon interessieren. Trotzdem sollten Sie zumindest kurz duchblättern, um zu sehen, ob nicht doch etwas Ihren Geschmack trifft oder eine drängende Frage beantwortet. Alle in diesem Anhang besprochenen Programmiertechniken sind direkter Bestandteil von Python und dem Interpreter.

1. Was ist mit Python 2?

2. Virtuelle Programmierumgebungen

3. Mehr zur Objektorientierung

4. Formate für Strings und Ähnliches

5. Dinge sortieren

6. Mehr zur Standardbibliothek

7. Code gleichzeitig ausführen

8. GUIs mit Tkinter (und Spaß mit turtle)

9. Ohne Test ist es nicht fertig

10. Debuggen, Debuggen, Debuggen

Die 10 wichtigsten Projekte, die wir nicht behandelt haben

DNoch mehr Werkzeuge, Bibliotheken und Module

Wir wissen, was Sie beim Lesen der Überschrift gedacht haben. Warum um alles in der Welt haben die den letzten Anhang nicht einfach Die 20 wichtigsten Dinge, die wir nicht behandelt haben genannt? Warum noch mal zehn? Im vorigen Anhang haben wir uns auf Dinge beschränkt, die direkter Bestandteil von Python sind (Teile der »beiliegenden Batterien« sozusagen). In diesem Anhang werfen wir das Netz weiter aus und sprechen über eine Reihe von Technologien, die es gibt, weil es Python gibt. Hier ist viel Gutes zu entdecken, und wie beim vorigen Kapitel lohnt sich selbst das Überfliegen auf jeden Fall.

1. Alternativen zu >>>

2. Alternativen zu IDLE

3. Jupyter Notebook: die webbasierte IDE

4. Data Science betreiben

5. Technologien für die Webentwicklung

6. Mit Webdaten arbeiten

7. Noch mehr Datenquellen

8. Programmierwerkzeuge

9. Kivy: Unsere Wahl für das »coolste Projekt überhaupt«

10. Alternative Implementierungen

Mitmachen

EDie Python-Gemeinschaft

Python ist viel mehr als nur eine großartige Programmiersprache. Es ist auch eine großartige Gemeinschaft. Die Python-Gemeinschaft ist einladend, verschiedenartig, offen, freundlich, selbstlos und freigiebig. Wir wundern uns die ganze Zeit, warum das bis heute noch niemand auf eine Grußkarte gedruckt hat! Im Ernst, Python ist mehr als nur die Sprache. Um Python ist ein komplettes Ökosystem entstanden – in Form von Büchern, Blogs, Websites, Konferenzen, Treffen, Benutzergruppen und Persönlichkeiten. In diesem Anhang untersuchen wir die Python-Gemeinschaft und sehen, was sie zu bieten hat. Sitzen Sie nicht nur rum und programmieren im stillen Kämmerlein: Machen Sie mit!

Wohlwollender Diktator auf Lebenszeit

Eine tolerante Gemeinschaft: Respekt für Vielfalt

Python-Podcasts

Das Python-Zen

Welches Buch sollte ich jetzt lesen?

Unsere englischen Lieblings-Python-Bücher

Unsere deutschen Lieblings-Python-Bücher

Wie man dieses Buch benutzt

Einführung

In diesem Abschnitt beantworten wir die brennende Frage: »Und? Warum steht SO WAS in einem Python–Buch?«

Für wen ist dieses Buch?

Wenn Sie alle diese Fragen mit »Ja« beantworten können …

Wissen Sie schon, wie man in einer anderen Programmiersprache programmiert?

Wissen Sie schon die meisten wichtigen Dinge zur Programmierung mit Python?

Ist es Ihnen lieber, etwas in Angriff zu nehmen und das Gelernte dann anzuwenden, als sich stundenlang in einer Vorlesung zu langweilen?

… ist dieses Buch etwas für Sie.

Dies ist kein Referenzwerk, und wir gehen davon aus, dass Sie bereits programmiert haben.

Wer sollte eher Abstand von diesem Buch nehmen?

Wenn Sie eine dieser Fragen mit »Ja« beantworten müssen …

Wünschen Sie sich, Python wäre Teil der Werkzeuge, mit denen Sie Neues schaffen können?

Suchen Sie nach einem Referenzbuch zu Python, das alle Details minutiös aufdröselt?

Sollen lieber 15 schreiende Affen Ihre Zehennägel herausreißen, als dass Sie etwas Neues lernen? Glauben Sie, ein Python-Buch sollte

alles

abdecken und seine Leser dabei zu Tränen langweilen, weil mehr ja besser ist?

… ist dieses Buch nicht das richtige für Sie.

Wir wissen, was Sie gerade denken

»Kann das wirklich ein seriöses Python-Buch sein?«

»Was sollen all die Abbildungen?«

»Kann ich das auf diese Weise wirklich lernen?«

Und wir wissen, was Ihr Gehirn gerade denkt.

Ihr Gehirn lechzt nach Neuem. Es ist ständig dabei, Ihre Umgebung abzusuchen, und es wartet auf etwas Ungewöhnliches. So ist es nun einmal gebaut, und es hilft Ihnen zu überleben.

Also, was macht Ihr Gehirn mit all den gewöhnlichen, normalen Routinesachen, denen Sie begegnen? Es tut alles in seiner Macht Stehende, damit es dadurch nicht bei seiner eigentlichen Arbeit gestört wird: Dinge zu erfassen, die wirklich wichtig sind. Es gibt sich nicht damit ab, die langweiligen Sachen zu speichern, sondern lässt diese gar nicht erst durch den »Diesist-offensichtlich-nicht-wichtig«-Filter.

Woher weiß Ihr Gehirn denn, was wichtig ist? Nehmen Sie an, Sie machen einen Tagesausflug und ein Tiger springt vor Ihnen aus dem Gebüsch: Was passiert dabei in Ihrem Kopf und Ihrem Körper?

Neuronen feuern. Gefühle werden angekurbelt. Chemische Substanzen durchfluten Sie.

Und so weiß Ihr Gehirn:

Dies muss wichtig sein! Vergiss es nicht!

Aber nun stellen Sie sich vor, Sie sind zu Hause oder in einer Bibliothek. In einer sicheren, warmen, tigerfreien Zone. Sie lernen. Bereiten sich auf eine Prüfung vor. Oder Sie versuchen, irgendein schwieriges Thema zu lernen, von dem Ihr Chef glaubt, Sie bräuchten dafür eine Woche oder höchstens zehn Tage.

Da ist nur ein Problem: Ihr Gehirn versucht, Ihnen einen großen Gefallen zu tun. Es versucht, dafür zu sorgen, dass diese offensichtlich unwichtigen Inhalte nicht knappe Ressourcen verstopfen. Ressourcen, die besser dafür verwendet würden, die wirklich wichtigen Dinge zu speichern. Wie Tiger. Wie die Gefahren des Feuers. Wie die Notwendigkeit, schnell das Browserfenster mit dem YouTube-Video zu einer Alien-Entführung zu verbergen, wenn Ihr Chef die Nase ins Büro steckt.

Und es gibt keine einfache Möglichkeit, Ihrem Gehirn zu sagen: »Hey, Gehirn, vielen Dank, aber egal, wie langweilig dieses Buch auch ist und wie klein der Ausschlag auf meiner emotionalen Richterskala gerade ist, ich will wirklich, dass du diesen Kram behältst.«

Wir stellen uns unseren Leser als einen aktiv Lernenden vor.

Also, was ist nötig, damit Sie etwas lernen? Erst einmal müssen Sie es aufnehmen und dann dafür sorgen, dass Sie es nicht wieder vergessen. Es geht nicht darum, Fakten in Ihren Kopf zu schieben. Nach den neuesten Forschungsergebnissen der Kognitionswissenschaft, der Neurobiologie und der Lernpsychologie gehört zum Lernen viel mehr als nur Text auf einer Seite. Wir wissen, was Ihr Gehirn anmacht.

Einige der Lernprinzipien dieser Buchreihe:

Wir setzen Bilder ein. An Bilder kann man sich viel besser erinnern als an Worte allein und lernt so viel effektiver (bis zu 89 % Verbesserung bei Abrufbarkeits- und Lerntransferstudien). Außerdem werden die Dinge dadurch verständlicher. Wir setzen Text in oder neben die Grafiken, auf die sie sich beziehen, anstatt darunter oder auf eine andere Seite. Die Leser werden auf den Bildinhalt bezogene Probleme dann mit doppelt so hoher Wahrscheinlichkeit lösen können.

Wir verwenden einen gesprächsorientierten Stil mit persönlicher Ansprache. Nach neueren Untersuchungen haben Studenten nach dem Lernen bei Tests bis zu 40 % besser abgeschnitten, wenn der Inhalt den Leser direkt in der ersten Person und im lockeren Stil angesprochen hat statt in einem formalen Ton. Halten Sie keinen Vortrag, sondern erzählen Sie Geschichten. Benutzen Sie eine zwanglose Sprache. Nehmen Sie sich selbst nicht zu ernst. Würden Sie einer anregenden Unterhaltung beim Abendessen mehr Aufmerksamkeit schenken oder einem Vortrag?

Wir bringen den Lernenden dazu, intensiver nachzudenken. Mit anderen Worten: Falls Sie nicht aktiv Ihre Neuronen strapazieren, passiert in Ihrem Gehirn nicht viel. Ein Leser muss motiviert, begeistert und neugierig sein und angeregt werden, Probleme zu lösen, Schlüsse zu ziehen und sich neues Wissen anzueignen. Und dafür brauchen Sie Herausforderungen, Übungen, zum Nachdenken anregende Fragen und Tätigkeiten, die beide Seiten des Gehirns und mehrere Sinne einbeziehen.

Wir ziehen die Aufmerksamkeit des Lesers auf den Lernstoff – nachhaltig. Wir alle haben schon Erfahrungen dieser Art gemacht: »Ich will das wirklich lernen, aber ich kann einfach nicht über Seite 1 hinaus wach bleiben.« Ihr Gehirn passt auf, wenn Dinge ungewöhnlich, interessant, merkwürdig, auffällig, unerwartet sind. Ein neues, schwieriges, technisches Thema zu lernen, muss nicht langweilig sein. Wenn es das nicht ist, lernt Ihr Gehirn viel schneller.

Wir sprechen Gefühle an. Wir wissen, dass Ihre Fähigkeit, sich an etwas zu erinnern, wesentlich von dessen emotionalem Gehalt abhängt. Sie erinnern sich an das, was Sie bewegt. Sie erinnern sich, wenn Sie etwas fühlen. Nein, wir erzählen keine herzzerreißenden Geschichten über einen Jungen und seinen Hund. Was wir erzählen, ruft Überraschungs-, Neugier-, Spaß- und Was-soll-das?-Emotionen hervor und dieses Hochgefühl, das Sie beim Lösen eines Puzzles empfinden oder wenn Sie etwas lernen, das alle anderen schwierig finden. Oder wenn Sie merken, dass Sie etwas können, was dieser »Ich-bin-ein-besserer-Techniker-als-du«-Typ aus der Technikabteilung nicht kann.

Metakognition: Nachdenken übers Denken

Wenn Sie wirklich lernen möchten, und zwar schneller und nachhaltiger, dann schenken Sie Ihrer Aufmerksamkeit Aufmerksamkeit. Denken Sie darüber nach, wie Sie denken. Lernen Sie, wie Sie lernen.

Die meisten von uns haben in ihrer Jugend keine Kurse in Metakognition oder Lerntheorie gehabt. Es wurde von uns erwartet, dass wir lernen, aber nur selten wurde uns auch beigebracht, wie man lernt.

Wir nehmen aber an, dass Sie wirklich etwas über Python lernen möchten, wenn Sie dieses Buch in den Händen halten. Und wahrscheinlich möchten Sie nicht viel Zeit aufwenden. Und Sie wollen sich an das erinnern, was Sie lesen, und es anwenden können. Und deshalb müssen Sie es verstehen. Wenn Sie so viel wie möglich von diesem Buch profitieren wollen oder von irgendeinem anderen Buch oder einer anderen Lernerfahrung, übernehmen Sie Verantwortung für Ihr Gehirn. Ihr Gehirn im Zusammenhang mit diesem Lernstoff.

Der Trick besteht darin, Ihr Gehirn dazu zu bringen, neuen Lernstoff als etwas wirklich Wichtiges anzusehen. Als entscheidend für Ihr Wohlbefinden. So wichtig wie ein Tiger. Andernfalls stecken Sie in einem dauernden Kampf, in dem Ihr Gehirn sein Bestes gibt, um die neuen Inhalte davon abzuhalten, hängen zu bleiben.

Wie bringen Sie also Ihr Gehirn dazu, Python für so wichtig zu halten wie einen Tiger?

Da gibt es den langsamen, ermüdenden Weg oder den schnelleren, effektiveren Weg. Der langsame Weg geht über bloße Wiederholung. Natürlich ist Ihnen klar, dass Sie lernen und sich sogar an die langweiligsten Themen erinnern können, wenn Sie sich die gleiche Sache immer wieder einhämmern. Wenn Sie nur oft genug wiederholen, sagt Ihr Gehirn: »Er hat zwar nicht das Gefühl, dass das wichtig ist, aber er sieht sich dieselbe Sache immer und immer wieder an – dann muss sie wohl wichtig sein.«

Der schnellere Weg besteht darin, alles zu tun, was die Gehirnaktivität erhöht, vor allem verschiedene Arten von Gehirnaktivität. Eine wichtige Rolle dabei spielen die auf der vorhergehenden Seite erwähnten Dinge – alles Dinge, die nachweislich dabei helfen, dass Ihr Gehirn für Sie arbeitet. So hat sich z. B. in Untersuchungen gezeigt: Wenn Wörter in den Abbildungen stehen, die sie beschreiben (und nicht irgendwo anders auf der Seite, z. B. in einer Bildunterschrift oder im Text), versucht Ihr Gehirn, herauszufinden, wie die Wörter und das Bild zusammenhängen, und dadurch feuern mehr Neuronen. Und je mehr Neuronen feuern, umso größer ist die Chance, dass Ihr Gehirn mitbekommt: Bei dieser Sache lohnt es sich, aufzupassen, und vielleicht auch, sich daran zu erinnern.

Ein lockerer Sprachstil hilft, denn Menschen tendieren zu höherer Aufmerksamkeit, wenn ihnen bewusst ist, dass sie ein Gespräch führen – man erwartet dann ja von ihnen, dass sie dem Gespräch folgen und sich beteiligen. Das Erstaunliche daran ist: Es ist Ihrem Gehirn ziemlich egal, dass die »Unterhaltung« zwischen Ihnen und einem Buch stattfindet! Wenn der Schreibstil dagegen formal und trocken ist, hat Ihr Gehirn den gleichen Eindruck wie bei einem Vortrag, bei dem in einem Raum passive Zuhörer sitzen. Nicht nötig, wach zu bleiben.

Aber Abbildungen und ein lockerer Sprachstil sind erst der Anfang.

Das haben WIR getan:

Wir haben Bilder verwendet, weil Ihr Gehirn auf visuelle Eindrücke eingestellt ist, nicht auf Text. Soweit es Ihr Gehirn betrifft, sagt ein Bild wirklich mehr als 1.024 Worte. Und dort, wo Text und Abbildungen zusammenwirken, haben wir den Text in die Bilder eingebettet, denn Ihr Gehirn arbeitet besser, wenn der Text innerhalb der Sache steht, auf die er sich bezieht, und nicht in einer Bildunterschrift oder irgendwo vergraben im Text.

Wir haben Redundanz eingesetzt, d. h. dasselbe auf unterschiedliche Art und mit verschiedenen Medientypen ausgedrückt, damit Sie es über mehrere Sinne aufnehmen. Das erhöht die Chance, dass die Inhalte an mehr als nur einer Stelle in Ihrem Gehirn verankert werden.

Wir haben Konzepte und Bilder in unerwarteter Weise eingesetzt, weil Ihr Gehirn auf Neuigkeiten programmiert ist. Und wir haben Bilder und Ideen mit zumindest etwasemotionalemCharakter verwendet, weil Ihr Gehirn darauf eingestellt ist, auf die Biochemie von Gefühlen zu achten. An alles, was ein Gefühl in Ihnen auslöst, können Sie sich mit höherer Wahrscheinlichkeit erinnern, selbst wenn dieses Gefühl nicht mehr ist als ein bisschen Belustigung, Überraschung oder Interesse.

Wir haben einen umgangssprachlichen Stil mit direkter Anrede benutzt, denn Ihr Gehirn ist von Natur aus aufmerksamer, wenn es Sie in einer Unterhaltung wähnt als wenn es davon ausgeht, dass Sie passiv einer Präsentation zuhören – sogar dann, wenn Sie lesen.

Wir haben mehr als 100 Aktivitäten für Sie vorgesehen, denn Ihr Gehirn lernt und behält von Natur aus besser, wenn Sie Dinge tun, als wenn Sie nur darüber lesen. Und wir haben die Übungen zwar anspruchsvoll, aber doch lösbar gemacht, denn so ist es den meisten Lesern am liebsten.

Wir haben mehrere unterschiedliche Lernstile eingesetzt, denn vielleicht bevorzugen Sie ein Schrittfür-Schritt-Vorgehen, während ein anderer erst einmal den groben Zusammenhang verstehen und ein Dritter einfach nur ein Codebeispiel sehen möchte. Aber ganz abgesehen von den jeweiligen Lernvorlieben profitiert jeder davon, wenn er die gleichen Inhalte in unterschiedlicher Form präsentiert bekommt.

Wir liefern Inhalte für beide Seiten Ihres Gehirns, denn je mehr Sie von Ihrem Gehirn einsetzen, umso wahrscheinlicher werden Sie lernen und behalten, und umso länger bleiben Sie konzentriert. Wenn Sie mit einer Seite des Gehirns arbeiten, bedeutet das häufig, dass sich die andere Seite des Gehirns ausruhen kann; so können Sie über einen längeren Zeitraum produktiver lernen.

Und wir haben Geschichten und Übungen aufgenommen, die mehr als einen Blickwinkel repräsentieren, denn Ihr Gehirn lernt von Natur aus intensiver, wenn es gezwungen ist, selbst zu analysieren und zu beurteilen.

Wir haben Herausforderungen eingefügt: in Form von Übungen und indem wir Fragen stellen, auf die es nicht immer eine eindeutige Antwort gibt, denn Ihr Gehirn ist darauf eingestellt, zu lernen und sich zu erinnern, wenn es an etwas arbeiten muss. Überlegen Sie: Ihren Körper bekommen Sie ja auch nicht in Form, wenn Sie nur die Leute auf dem Sportplatz beobachten. Aber wir haben unser Bestes getan, um dafür zu sorgen, dass Sie – wenn Sie schon hart arbeiten – an den richtigen Dingen arbeiten. Dass Sie nicht einen einzigen Dendriten darauf verschwenden, ein schwer verständliches Beispiel zu verarbeiten oder einen schwierigen, mit Fachbegriffen gespickten oder übermäßig gedrängten Text zu analysieren.

Wir haben Menschen eingesetzt. In Geschichten, Beispielen, Bildern usw. – denn Sie sind ein Mensch. Und Ihr Gehirn schenkt Menschen mehr Aufmerksamkeit als Dingen.

Und das können SIE tun, um sich Ihr Gehirn untertan zu machen

So, wir haben unseren Teil der Arbeit geleistet. Der Rest liegt bei Ihnen. Diese Tipps sind ein Anfang; hören Sie auf Ihr Gehirn und finden Sie heraus, was bei Ihnen funktioniert und was nicht. Probieren Sie neue Wege aus.

Schneiden Sie dies aus und heften Sie es an Ihren Kühlschrank.

Immer langsam. Je mehr Sie verstehen, umso weniger müssen Sie auswendig lernen.

Lesen Sie nicht nur. Halten Sie inne und denken Sie nach. Wenn das Buch Sie etwas fragt, springen Sie nicht einfach zur Antwort. Stellen Sie sich vor, dass Sie das wirklich jemand fragt. Je gründlicher Sie Ihr Gehirn zum Nachdenken zwingen, umso größer ist die Chance, dass Sie lernen und behalten.

Bearbeiten Sie die Übungen. Machen Sie sich selbst Notizen.

Wir haben sie entworfen, aber wenn wir sie auch für Sie lösen würden, wäre dass, als ob jemand anderes Ihr Training für Sie absolviert. Und sehen Sie sich die Übungen nicht einfach nur an. Benutzen Sie einen Bleistift. Es deutet vieles darauf hin, dass körperliche Aktivität beim Lernen den Lernerfolg erhöhen kann.

Lesen Sie die Abschnitte »Es gibt keine Dummen Fragen«.

Und zwar alle. Das sind keine Zusatzanmerkungen – sie gehören zum Kerninhalt! Überspringen Sie sie nicht.

Lesen Sie dies als Letztes vor dem Schlafengehen. Oder lesen Sie danach zumindest nichts

Anspruchsvolles

mehr.

Ein Teil des Lernprozesses (vor allem die Übertragung in das Langzeitgedächtnis) findet erst statt, nachdem Sie das Buch zur Seite gelegt haben. Ihr Gehirn braucht Zeit für sich, um weitere Verarbeitung zu leisten. Wenn Sie in dieser Zeit etwas Neues aufnehmen, geht ein Teil dessen, was Sie gerade gelernt haben, verloren.

Trinken Sie Wasser. Viel.

Ihr Gehirn arbeitet am besten in einem schönen Flüssigkeitsbad. Austrocknung (zu der es schon kommen kann, bevor Sie überhaupt Durst verspüren) beeinträchtigt die kognitive Funktion.

Reden Sie drüber. Laut.

Sprechen aktiviert einen anderen Teil des Gehirns. Wenn Sie etwas verstehen wollen oder Ihre Chancen verbessern wollen, sich später daran zu erinnern, sagen Sie es laut. Noch besser: Versuchen Sie, es jemand anderem laut zu erklären. Sie lernen dann schneller und haben vielleicht Ideen, auf die Sie beim bloßen Lesen nie gekommen wären.

Hören Sie auf Ihr Gehirn.

Achten Sie darauf, Ihr Gehirn nicht zu überladen. Wenn Sie merken, dass Sie etwas nur noch überfliegen oder dass Sie das gerade erst Gelesene vergessen haben, ist es Zeit für eine Pause. Ab einem bestimmten Punkt lernen Sie nicht mehr schneller, indem Sie mehr hineinzustopfen versuchen; das kann sogar den Lernprozess stören.

Aber bitte mit

Gefühl

!

Ihr Gehirn muss wissen, dass es um etwas Wichtiges geht. Lassen Sie sich in die Geschichten hineinziehen. Erfinden Sie eigene Bildunterschriften für die Fotos. Über einen schlechten Scherz zu stöhnen, ist immer noch besser, als gar nichts zu fühlen.

Schreiben Sie viel Code!

Programmieren lernt man nur auf eine Weise: indem man viel programmiert! Und das werden Sie in diesem Buch machen. Programmieren ist ein Handwerk. Gut wird man nur durch Übung, und die erhalten Sie hier: Jedes Kapitel enthält eine Menge Übungen, die Sie lösen müssen. Überspringen Sie diese nicht – das Lernen erfolgt zu großen Teilen beim Lösen der Übungen. Zu jeder Übung gibt es eine Lösung – werfen Sie ruhig einen Blick darauf, wenn Sie hängen bleiben! Aber versuchen Sie, das Problem zu lösen, bevor Sie sich die Lösung ansehen. Auf alle Fälle sollten Sie die Sache ans Laufen bringen, bevor Sie im Buch weitergehen.

Lies mich, Teil 1 von 2

Das hier ist ein Lehrbuch, kein Referenzwerk. Wir haben mit Absicht alles weggelassen, was Ihnen dabei in die Quere kommen könnte, das zu lernen, was wir am jeweiligen Punkt des Buchs behandeln. Beim ersten Lesen sollten Sie unbedingt auch am Anfang des Buchs beginnen. Das Buch geht zu jedem Zeitpunkt davon aus, dass Sie bestimmte Dinge bereits gesehen und gelernt haben.

Dieses Buch soll Sie so schnell wie möglich mit Python vertraut machen.

Wir führen die Inhalte dann ein, wenn sie gebraucht werden. Deshalb gibt es hier auch keine langen Listen mit technischen Einzelheiten, keine Tabelle mit den von Python unterstützten Operatoren und keine Vorrangregeln für Operatoren. Wir können nicht alles behandeln, haben uns aber große Mühe gegeben, den wichtigen Stoff so gut wie möglich durchzugehen, damit sich Python schnell in Ihrem Hirn festsetzt und dort auch bleibt. Wir setzen nur eine einzige Sache voraus: dass Sie bereits mit einer anderen Programmiersprache vertraut sind.

In diesem Buch geht es um Python 3.

Wir nutzen in diesem Buch Version 3 der Programmiersprache Python, und in Anhang A zeigen wir, wie man sich Python 3 beschafft und es installiert. In diesem Buch wird kein Python 2 verwendet.

Wir werden Python gleich für Sie zum Einsatz bringen.

Direkt ab Kapitel 1 werden wir nützliche Dinge tun. Hier wird nicht abgehangen, denn wir wollen, dass Sie vom ersten Augenblick an mit Python produktiv arbeiten können.

Die Aktivitäten sind NICHT optional – Sie müssen die Arbeit selbst machen.

Die Übungen und Aktivitäten sind kein Beiwerk. Sie sind ein wesentlicher Bestandteil des Buchs. Einige sollen Ihnen beim Merken helfen, andere beim Verstehen und noch andere beim Anwenden. Überspringen Sie nichts.

Die Redundanz ist wichtig und beabsichtigt.

Ein wesentliches Anliegen eines Von Kopf bis Fuß-Buchs ist, dass wir wollen, dass Sie es wirklich kapieren. Und wir wollen, dass Sie sich am Ende des Buchs an das Gelernte erinnern.

Beständigkeit und Erinnern ist bei den meisten Referenzbüchern nicht das Ziel, aber in diesem Buch geht es ums Lernen. Deshalb werden Sie einige der hier gezeigten Konzepte mehr als einmal sehen.

Lies mich, Teil 2 of

Ja, es gibt noch mehr …

Die Beispiele sind so kurz wie möglich.

Unsere Leser sagen uns, dass sie es frustrierend finden, sich durch 200 Zeilen Code graben zu müssen, um die beiden Zeilen zu finden, die sie wirklich verstehen müssen. Die meisten Beispiele in diesem Buch werden mit so wenig Kontext wie möglich gezeigt, damit der Teil, den Sie lernen sollen, klar und einfach ist. Sie dürfen nicht erwarten, dass der Code robust oder gar vollständig ist. Die Beispiele in diesem Buch wurden spezifisch für Lehrzwecke geschrieben und sind nicht immer rundum funktionsfähig (obwohl wir versucht haben, das so weit wie möglich sicherzustellen).

Diese zweite Auflange ist VOLLKOMMEN ANDERS als die erste.

Dies ist eine Aktualisierung der ersten Auflage von Python von Kopf bis Fuß, die Ende 2010 veröffentlicht wurde. Obwohl beide Bücher den gleichen Autor haben, ist er jetzt älter und (hoffentlich) weiser and hat sich daher entschieden, das Buch für diese Auflage komplett neu zu schreiben. Das heißt: Alles ist neu, die Reihenfolge ist anders, der Inhalt wurde aktualisiert, es gibt bessere Beispiele, und die Geschichten sind entweder rausgeflogen oder wurden ersetzt. Wir haben den Einband größtenteils gleich gelassen, weil wir keine zu hohen Wellen schlagen wollten. Es waren sechs lange Jahre … wir hoffen, Ihnen gefällt, was wir uns ausgedacht haben.

Wo ist der Code?

Wir haben die Codebeispiele dieses Buchs ins Web gestellt, damit Sie die Teile, die Sie benötigen, nicht von Hand eingeben müssen (obwohl wir Ihnen empfehlen, das trotzdem zu tun, und zwar während Sie das Buch durcharbeiten). Sie finden die Beispiele an zwei Stellen:

http://bit.ly/head-first-python-2e

http://python.itcarlow.ie

Anmerkung: Anders als in anderen Büchern der Von Kopf bis Fuß-Reihe haben wir in diesem Buch darauf verzichtet, die Codebeispiele einzudeutschen. Das Fehlerrisiko ist einfach zu hoch. Außerdem werden Variablen, Funktionen usw. in der Praxis ohnehin so gut wie immer englisch benannt.

Die technischen Gutachter

Bill Lubanovic war 40 Jahre lang Entwickler und Administrator. Er hat mehrere Kapitel für O’Reilly-Bücher über Linux-Sicherheit geschrieben, war Koautor eines Buchs über Linux-Administration und Solo-Autor für »Introducing Python«. Er lebt am Ufer eine zugefrorenen Sees in den Sangre de Sasquatch-Bergen von Minnesota mit einer wunderbaren Frau, zwei wunderbaren Kindern und drei dickpelzigen Katzen.

Edward Yue Shung Wong ist seit seiner ersten Zeile Haskell dem Programmieren verfallen. Er arbeitet im Moment an eventgetriebenen Handelsprozessen im Herzen der Stadt London. Er liebt es, seine Leidenschaft mit der Londoner Java-Community und der Software-Craftmanship-Community zu teilen. Sitzt er mal nicht an der Tastatur, findet Edward sein Element auf dem Fußballplatz oder beim Gaming auf YouTube (@arkangelofkaos).

Adrienne Lowe ist eine ehemalige Privatköchin aus Atlanta, die auf Python umgesattelt hat. Sie gibt ihre Geschichten, Konferenzberichte und Rezepte in ihrem Koch- und Programmierblog namens Coding with Knifes weiter (http://codingwithknives.com). Sie organisiert PyLadiesATL und Django Girls Atlanta und produziert Django Girls »Your Django Story«, eine Interviewreihe für Frauen, die mit Python programmieren. Adrienne arbeitet im technischen Support bei Emma Inc., als »Director of Advancement« bei der Django Software Foundation und ist Teil des Kernteams, das die Python-Dokumentation schreibt. Sie bevorzugt handgeschriebene Briefe gegenüber E-Mail und erweitert seit ihrer Kindheit ihre umfangreiche Briefmarkensammlung.

Monte Milanuk hat wertvolle Rückmeldungen gegeben.

Danksagungen

Meine Lektorin: Die Lektorin dieser Auflage ist Dawn Schanafelt. Durch Dawns Hilfe ist dieses Buch um vieles besser geworden. Dabei ist Dawn nicht nur eine gute Lektorin, ihr Blick für Details und die richtige Art, Dinge auszudrücken, haben das hier Geschriebene erheblich verbessert. Bei O’Reilly Media ist es üblich, schlaue, freundliche und fähige Leute einzustellen, und Dawn ist die Personifizierung all dieser Eigenschaften.

Das O’Reilly Media-Team: Das Schreiben dieser Auflage von Python von Kopf bis Fuß hat vier Jahre gedauert (es ist eine lange Geschichte). Daher ist es nur natürlich, dass eine Menge Leute bei O´Reilly Media daran beteiligt waren. Courtney Nash überredete mich 2012, eine »schnelle Überarbeitung« zu machen, und stand zur Verfügung, als der Umfang des Projekts immer größer wurde. Courtney war die erste Lektorin dieses Projekts und war auch da, als das Unglück passierte und dieses Buch fast gescheitert wäre. Als die Dinge langsam wieder in die Spur kamen, hatte Courtney sich zu größeren und wichtigeren Dingen bei O´Reilly Media aufgemacht und reichte das Staffelholz des Lektorats an Meghan Blanchette weiter. Sie war da (ich vermute, mit zunehmender Bestürzung), als eine Verzögerung sich an die nächste reihte und dieses Buch regelmäßig von der Spur ab- und wieder hineinkam. Die Dinge wurden gerade besser, als Meghan sich zu neuen Ufern aufmachte und Dawn die Lektoratsweihen für dieses Buch übernahm. Das war vor einem Jahr, und der Großteil der 12¾ Kapitel dieses Buchs wurde unter Dawns immer wachsamen Augen geschrieben. Wie ich oben schon gesagt habe, stellt O’Reilly Media wirklich gute Leute ein. Deshalb möchte ich Courtneys und Meghans Beiträge zum Lektorat hier dankbar würdigen. Außerdem gilt mein Dank Maureen Spencer, Heather Scherer, Karen Shaner und Chris Pappas, die »hinter den Kulissen« ihre Arbeit taten. Dank ebenfalls an die unsichtbaren Helden, auch bekannt als Produktionsteam, die meine InDesign-Kapitel in ein fertiges Produkt verwandelten. Sie alle haben großartige Arbeit geleistet.

Ein Hallo an Bert Bates, der zusammen mit Kathy Sierra und ihrem Buch Java von Kopf bis Fuß diese wunderbare Buchreihe begründet hat. Bert arbeitete eine lange Zeit mit mir zusammen, um sicherzustellen, dass diese Auflage die richtige Richtung bekommt.

Freunde und Kollegen: Ein weiteres Dankeschön geht an Nigel Whyte (Leiter des Department of Computing am Institute of Technology, Carlow) für seine Unterstützung bei dieser Neufassung. Ich habe vielen meiner Studenten das hier verwendete Material als Teil ihrer Studien hingeworfen und hoffe, sie können mittlerweile darüber lachen, das eine oder andere Beispiel aus dem Seminar in gedruckter Form hier wiederzufinden.

Ein weiteres Mal danke an David Griffiths (meinen Kumpan bei Programmierung von Kopf bis Fuß) dafür, dass er mir sagte, ich solle mir nicht ständig über alles Mögliche Sorgen machen und das verdammte Ding endlich schreiben! Es war der perfekte Rat. Es ist gut zu wissen, dass David und Dawn (seine Frau und Von Kopf bis Fuß-Koautorin) nur eine E-Mail entfernt sind. Sehen Sie sich Davids und Dawns großartige Von Kopf bis Fuß-Bücher auf jeden Fall an.

Familie: Meine Familie (meine Frau Deirdre und meine Kinder Joseph, Aaron und Aideen) mussten vier Jahre lang alle Höhen und Tiefen, alles Drunter und Drüber, alles Hin und Her und eine lebensverändernde Erfahrung mitmachen.

Trotzdem waren wir am Ende noch bei vollem Verstand und dankenswerterweise auch als Familie noch intakt. Das Buch hat überlebt, ich habe überlebt, und unsere Familie hat überlebt. Ich bin sehr dankbar und liebe sie alle. Und obwohl ich weiß, dass ich das nicht sagen muss: Ich mache das für euch, Leute.

Die Unentbehrlichen: Mein Team technischer Gutachter hat hervorragende Arbeit geleistet: Sehen Sie sich ihre Mini-Profile auf der vorigen Seite an. Ich habe sämtliche Rückmeldungen in Betracht gezogen, habe alle Fehler korrigiert, die sie gefunden haben, und war immer ein wenig eingeschüchtert, wenn sich einer die Zeit nahm, mir zu sagen, was für einen großartigen Job ich da mache. Ich bin allen sehr dankbar.

Über den Übersetzer dieses Buchs

Jørgen W. Lang lebt und arbeitet als freier Autor (»CSS Kochbuch«) und Übersetzer in Oldenburg/Niedersachsen. Mitte der Neunzigerjahre des vergangenen Jahrhunderts begann er, sich mit dem damals noch jungen World Wide Web und seinen Möglichkeiten zu beschäftigen. Pünktlich zum Jahrtausendwendejahr erschien seine erste Übersetzung für den O’Reilly Verlag. Mittlerweile ist der Umfang auf mehr als 10.000 Seiten angewachsen.

Mit großer Energie und Ausdauer bringt Jørgen seit fast schon zwei Jahrzehnten Webseiten bei, das zu tun, was von ihnen erwartet wird – unabhängig davon, auf welchem Gerät sie betrachtet werden (elektrische Zahnbürsten ausgenommen).

Das zweite Standbein von Jørgen Lang ist die Musik. Außerhalb der Welt der semantischen Elemente, Selektoren und Objekte hat er sich einen Namen als hervorragender Gitarrist, Sänger, Komponist und Arrangeur gemacht und kann auf eine Vielzahl veröffentlichter Alben und über mehrere Hundert Konzerte in aller Welt (z. B. für die UNESCO in Seoul) zurückblicken.

1 Die Grundlagen

Volle Kraft voraus!

Finden Sie einen möglichst schnellen Einstieg in die Programmiersprache Python.

In diesem Kapitel geben wir Ihnen einen Einblick in die Grundlagen der Python-Programmierung, und zwar wie es bei Von Kopf bis Fuß-Büchern üblich ist: indem wir gleich loslegen. Nach ein paar Seiten ist Ihr erstes Programm bereits lauffähig. Am Ende des Kapitels können Sie nicht nur Ihr Beispielprogramm ausführen, sondern auch den Code verstehen (und noch einiges mehr). Unterwegs lernen Sie ein paar der Dinge, die Python als Programmiersprache ausmachen. Lassen Sie uns also keine Zeit verschwenden. Blättern Sie um, und los geht's!

Mit Traditionen brechen

Egal welches Programmierbuch Sie sich vornehmen, die meisten beginnen mit dem typischen Hallo Welt-Beispiel.

Nein, tun wir nicht.

Üblicherweise beginnen Computerbücher mit dem Schreiben eines Hallo Welt!-Programms in der betreffenden Sprache. Das ist ist aber ein Von Kopf bis Fuß-Buch, und das heißt: Hier laufen die Dinge etwas anders. Bei Python wäre das übrigens eine einzelne Anweisung, die Pythons eingebaute print-Funktion aufriefe und so die traditionelle »Hallo Welt«-Nachricht auf dem Bildschirm ausgäbe. Das ist fast schon zu aufregend … und Sie lernen dabei fast gar nichts.

Wir zeigen Ihnen also nicht, wie Sie ein Hallo Welt!-Programm in Python schreiben, weil es dabei wirklich nichts zu lernen gibt. Stattdessen gehen wir einen anderen Weg …

Ein Beispiel mit mehr »Fleisch«

In diesem Kapitel wollen wir mit einem etwas größeren und auf jeden Fall nützlicheren Beispiel als Hallo Welt beginnen.

Um ehrlich zu sein: Das Beispiel ist ein wenig konstruiert. Es tut etwas, das auf lange Sicht vermutlich nicht wirklich nützt, aber als Beispiel, und um eine Menge Python in kurzer Zeit zu lernen, ist es prima geeignet. Und wir versprechen: Sobald Sie Ihr erstes Beispielprogramm durchgearbeitet haben, werden Sie genug wissen, um Hallo Welt auch ohne unsere Hilfe in Python schreiben zu können.

Einfach ins kalte Wasser springen

Wenn Sie Python 3 noch nicht auf Ihrem Computer installiert haben, unterbrechen Sie an dieser Stelle und gehen zu Anhang A. Dort finden Sie eine Schritt-für-Schritt-Anleitung zur Installation (es dauert nur ein paar Minuten, versprochen). Ist die neueste Version von Python 3 installiert, können Sie direkt mit der Programmierung beginnen. Damit das nicht zu schwierig wird, benutzen wir zunächst die bordeigene Entwicklungsumgebung (IDE).

Das Python-eigene IDLE ist alles, was Sie für den Anfang brauchen.

Wenn Sie Python 3 auf Ihrem Rechner installieren, erhalten Sie gleichzeitig auch eine einfache, aber sehr brauchbare IDE mit dem Namen IDLE. Zwar kann Python-Code auf vielerlei Weise ausgeführt werden (und davon werden Sie einen Großteil in diesem Buch kennenlernen), dennoch reicht IDLE für den Anfang vollkommen aus.

Starten Sie IDLE auf Ihrem Computer und wählen Sie den Menübefehl File→New File…, um ein neues Arbeitsfenster zu öffnen. Auf unserem Computer sehen wir jetzt zwei Fenster: eines mit dem Namen Python Shell und eines mit dem Namen Untitled:

Die IDLE-Fenster verstehen

Beide Fenster sind gleichermaßen wichtig.

Das erste Fenster, die Python-Shell, ist eine sogenannte REPL-Umgebung, in der typischerweise einzelne Python-Codeschnipsel ausgeführt werden können. Je mehr Sie mit Python arbeiten, desto mehr wird Ihnen die Python-Shell gefallen. Im Laufe dieses Buchs wird das noch oft der Fall sein. Im Moment interessiert uns das zweite Fenster aber viel mehr.

Geek-Bits

Was heißt REPL?

REPL ist die Abkürzung für »readeval-print-loop«, ein interaktives Programmierwerkzeug, das Ihnen erlaubt, nach Herzenslust mit Codeschnipseln zu experimentieren. Mehr, als Sie jemals wissen wollten finden Sie unter http://en.wikipedia.org/wiki/Read-eval-print_loop.

Dieses, das Fenster Untitled, ist ein Fenster zur Texteingabe, in dem Sie komplette Python-Programme schreiben können. Es ist zwar nicht der beste Editor der Welt (diese Ehre gebührt <hier den Namen Ihres Lieblingseditors einfügen>), aber der IDLE-Editor ist gut benutzbar und verfügt über eine Reihe moderner Fähigkeiten, wie z. B. Syntax-Highlighting usw.

Da wir gleich loslegen wollen, geben wir direkt unser erstes Python-Programm in dieses Fenster ein. Wenn Sie mit dem Tippen fertig sind, wählen Sie den Menübefehl File→Save…, um Ihr Programm unter dem Namen odd.py zu speichern.

Sorgen Sie dafür, den Code genau wie hier gezeigt einzugeben:

Und jetzt? Wenn Sie uns nur ein bisschen ähnlich sind, wollen Sie den Code am besten sofort laufen lassen, richtig? Na denn mal los. Mit dem Code im Editorfenster drücken Sie die F5-Taste. Jetzt können verschiedene Dinge passieren …

Was passiert als Nächstes?

Wurde Ihr Code fehlerfrei ausgeführt, blättern Sie einfach um, und machen Sie weiter.

Wenn Sie vergessen haben, Ihren Code vor der Ausführung zu sichern, wird IDLE Sie darauf aufmerksam machen, dass Sie den neuen Code zuerst speichern müssen. Die Nachricht dazu sieht ungefähr so aus:

Klicken Sie auf den OK-Button und geben Sie dann einen Dateinamen an. Wir haben hier odd als Namen gewählt und py als Dateiendung eingesetzt (eine Python-Konvention, die einzuhalten sich lohnt):

Wenn Ihr Code (nach dem Sichern) läuft, blättern Sie einfach um, und machen Sie weiter. Gibt es dagegen einen Syntaxfehler in Ihrem Code, sehen Sie stattdessen diese Nachricht:

Klicken Sie den OK-Button. Danach sehen Sie, wo IDLE Ihren Syntaxfehler vermutet: Suchen Sie den großen roten Block im Editorfenster. Sorgen Sie dafür, dass Ihr Code unserem exakt gleicht, speichern Sie die Datei wieder und drücken Sie dann F5, damit IDLE den Code erneut ausführt.

Drücken Sie F5, um Ihren Code auszuführen

Nehmen wir uns etwas Zeit, um zu verstehen, wie dieser Code ausgeführt wird.

Der Code wird sofort ausgeführt

Sobald IDLE Python anweist, den Code im Editorfenster auszuführen, beginnt Python sofort damit, den enthaltenen Code von oben nach unten auszuführen.

Diejenigen unter Ihnen, die von einer mit C verwandten Sprache zu Python kommen, sollten beachten, dass es in Python keine main()-Funktion oder -Methode gibt. Es fehlt außerdem jede Spur des bekannten Edit-Compile-Link-Run-Prozesses. In Python editieren Sie Ihren Code, speichern ihn und führen ihn sofort aus.

Oh, gut gesehen. Das ist etwas verwirrend.

Sie müssen wissen, dass »Python« der Name der Programmiersprache ist und »IDLE« der Name der eingebauten Python-IDE.

Wenn Sie Python 3 auf Ihrem Computer installieren, wird außerdem ein Interpreter installiert. Das ist die Technologie, die Ihren Python-Code ausführt. Dieser Interpreter ist ebenfalls unter dem Namen »Python« bekannt. Eigentlich sollte man ihn tatsächlich als »Python-Interpreter« bezeichnen, das macht aber leider niemand.

Ab diesem Moment werden wir in diesem Buch den Begriff »Python« benutzen, wenn wir die Sprache meinen, und »Interpreter«, wenn wir die Technologie meinen, die Ihren Python-Code ausführt. »IDLE« bezieht sich auf die IDE, die Ihren Python-Code übernimmt und für Sie im Interpreter laufen lässt. Tatsächlich macht der Interpreter also die eigentliche Arbeit.

Es gibt keineDummen Fragen

F:Ist der Python-Interpreter so etwas wie die Java-VM?

A: Jein. Ja, weil der Interpreter Ihren Code ausführt. Nein wegen der Art, wie das passiert. In Python gibt es keinen Quellcode, der zuerst in ein »Executable« kompiliert werden muss. Im Gegensatz zur Java-VM führt der Interpreter keine .class-Dateien aus, sondern einfach Ihren Code.

F:Aber irgendwann muss der Code doch kompiliert werden, oder?

A: Ja, das stimmt. Allerdings ist dieser Prozess für den Python-Programmierer (also Sie) nicht zugänglich. Sie brauchen sich um die Details nicht zu kümmern. Sie sehen nur, dass Ihr Code ausgeführt wird, während IDLE die Arbeiten im Hintergrund übernimmt und in Ihrem Namen mit dem Interpreter interagiert. Mehr zu diesem Prozess erfahren Sie im weiteren Verlauf dieses Buchs.

Code ausführen, eine Anweisung nach der anderen

Hier sehen Sie noch einmal das Programm von Seite 4:

Stellen Sie sich Module als Sammlung verwandter Funktionen vor.

Seien wir der Python-Interpreter

Nehmen wir uns etwas Zeit, um den Code in der Datei so zu durchlaufen, wie es der Python-Interpreter tut: Zeile für Zeile, von oben nach unten.

Die erste Zeile importiert eine Funktion aus Pythons Standardbibliothek, einer großen Sammlung von Softwaremodulen, die eine Menge vorgefertigten und wiederverwendbaren Code (in höchster Qualität) bereitstellen.

In unserem Code fordern wir aus dem datetime-Modul der Standardbibliothek ein bestimmtes Untermodul an, das ebenfalls datetime heißt. Das mag anfangs etwas verwirrend sein, aber so funktioniert es nun einmal. Das Untermodul datetime stellt einen Mechanismus bereit, mit dem sich die Zeit bestimmen lässt, wie wir auf den folgenden Seiten sehen werden.

Die Standardbibliothek von Python ist sehr reichhaltig und enthält jede Menge wiederverwendbaren Code.

Sehen wir uns ein anderes Modul namens os an, über das plattformunabhängig mit dem verwendeten Betriebssystem kommuniziert werden kann (wir werden gleich zum datetime-Modul zurückkommen). Nehmen wir beispielsweise die Funktion getcwd, deren Aufruf