1. Appetitanreger
*****************

Wenn du viel am Computer arbeitest, stellst du irgendwann fest, dass
du bestimmte Aufgaben gerne automatisieren würdest. Du möchtest
beispielsweise Suchen und Ersetzen in einer großen Anzahl von
Textdateien durchführen oder eine Reihe von Fotodateien auf
komplizierte Weise umbenennen und umstrukturieren. Vielleicht möchtest
du eine kleine eigene Datenbank, eine spezielle GUI-Anwendung oder ein
einfaches Spiel schreiben.

Wenn du beruflich Software entwickelst, musst du vielleicht mit
mehreren C/C++ oder Java-Bibliotheken arbeiten, findest aber den
üblichen Zyklus aus Schreiben, Kompilieren, Testen und erneutem
Kompilieren zu langsam. Vielleicht schreibst du eine Testsuite für
eine solche Bibliothek und empfindest das Erstellen des Testcodes als
mühsam. Oder du hast ein Programm geschrieben, das eine
Erweiterungssprache gebrauchen könnte, möchtest aber nicht eine völlig
neue Sprache für deine Anwendung entwerfen und umsetzen.

Dann ist Python genau die richtige Sprache für dich.

Für manche dieser Aufgaben könntest du ein Unix-Shell-Skript oder
Windows-Batch-Dateien schreiben, aber Shell-Skripte eignen sich am
besten zum Verschieben von Dateien und Ändern von Textdaten – für GUI-
Anwendungen oder Spiele sind sie kaum geeignet. Du könntest ein C/C++
oder Java-Programm schreiben, aber es kann viel Entwicklungszeit
kosten, selbst einen ersten Entwurf fertigzustellen. Python ist
einfacher zu bedienen, für Windows, macOS und Unix-Betriebssysteme
verfügbar und hilft dir, dein Ziel schneller zu erreichen.

Python ist einfach zu bedienen, aber es ist eine echte
Programmiersprache, die weit mehr Struktur und Unterstützung für große
Programme bietet, als es Shell-Skripte oder Batch-Dateien können. Auf
der anderen Seite bietet Python auch eine deutlich umfassendere
Fehlerprüfung als C und bringt als *Höchstsprache* bereits eingebaute,
komplexe Datentypen wie flexible Arrays und Dictionaries mit. Aufgrund
dieser allgemeineren Datentypen lässt sich Python für ein weit
größeres Spektrum an Problemstellungen einsetzen als Awk oder sogar
ogar Perl und bietet für viele Aufgaben mindestens ebenso einfache
Lösungen wie diese Sprachen.

Python ermöglicht es dir, dein Programm in Module aufzuteilen, die
sich in anderen Python-Programmen wiederverwenden lassen. Es bringt
eine umfangreiche Sammlung an Standardmodulen mit, die du als Basis
für deine eigene Entwicklung oder als Beispiele für den Einstieg
nutzen kannst. Einige dieser Module bieten Funktionen wie Datei-I/O,
Systemaufrufe, Sockets und sogar Schnittstellen zu Toolkits für
grafische Benutzeroberflächen wie Tk.

Python ist eine interpretierte Sprache. Das kann dir bei der
Softwareentwicklung viel Zeit sparen, da kein Kompilieren und Linken
nötig ist. Du kannst den Interpreter interaktiv nutzen, was das
Experimentieren mit Sprachfeatures, das Schreiben von Einweg-Skripten
oder das Testen von Funktionen nach dem Bottom-up-Prinzip sehr einfach
macht. Zudem dient er als praktischer Taschenrechner.

Python ermöglicht es, Programme kompakt und gut lesbar zu schreiben.
In Python verfasster Code ist aus mehreren Gründen meist deutlich
kürzer als vergleichbare Programme in C, C++ oder Java:

* Die komplexen Datentypen erlauben es dir, vielschichtige Abläufe in
  einer einzelnen Anweisung auszudrücken.

* Anweisungsblöcke werden durch Einrückungen statt durch öffnende und
  schließende Klammern strukturiert.

* Es sind keine Variablen- oder Argumentdeklarationen erforderlich.

Python ist *erweiterbar*: Wenn du in C programmieren kannst, lässt
sich der Interpreter problemlos um neue integrierte Funktionen oder
Module ergänzen. So kannst du zeitkritische Operationen mit maximaler
Geschwindigkeit ausführen oder Python-Programme mit Bibliotheken
verknüpfen, die nur in binärer Form vorliegen (wie die
Grafikbibliothek eines Drittherstellers). Wenn dich das Fieber erst
einmal gepackt hat, kannst du den Python-Interpreter auch direkt in
eine C-Anwendung einbinden und als Erweiterungs- oder Befehlssprache
dafür nutzen.

Übrigens: Die Sprache wurde nach der BBC-Show „Monty Python’s Flying
Circus“ benannt und hat nichts mit Reptilien zu tun. Anspielungen auf
Sketches von Monty Python in der Dokumentation sind daher nicht nur
erlaubt, sondern ausdrücklich erwünscht!

Nachdem du nun begeistert von Python bist, möchtest du dir die Sprache
sicher genauer ansehen. Da man eine Sprache am besten durch Anwendung
lernt, lädt dich dieses Tutorial dazu ein, beim Lesen direkt mit dem
Python-Interpreter zu experimentieren.

Im nächsten Kapitel wird die Handhabung des Interpreters erklärt. Das
sind zwar eher trockene Grundlagen, aber sie sind unerlässlich, um die
später gezeigten Beispiele auszuprobieren.

Der restliche Teil des Tutorials stellt verschiedene Funktionen der
Sprache und des Systems anhand von Beispielen vor. Das Spektrum reicht
von einfachen Ausdrücken, Anweisungen und Datentypen über Funktionen
und Module bis hin zu fortgeschrittenen Konzepten wie Exceptions und
benutzerdefinierten Klassen.
