Python programmieren lernen für Dummies - John Paul Mueller - E-Book

Python programmieren lernen für Dummies E-Book

John Paul Mueller

0,0
17,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Der Einstieg in die Programmierung kann ganz leicht sein, das beweist Ihnen dieses Buch! Schritt für Schritt führt Sie John Paul Mueller in die Grundlagen der beliebten Programmiersprache Python ein und zeigt Ihnen, wie Sie Ihren Computer dazu bringen, das zu tun, was Sie wollen. Downloaden und installieren Sie die Python-Distribution Anaconda, lernen Sie die Programmiersprache Python kennen und schreiben Sie Ihre ersten eigenen Programme. Erfahren Sie außerdem, wie Sie Informationen managen und modifizieren, Schleifen durchlaufen, Fehler beheben und mit Listen und Strings arbeiten. Erhalten Sie zusätzlich einen Einblick in fortgeschrittene Techniken. Mit den vielen Beispielen zum Herunterladen und Herumexperimentieren können Sie das Gelernte direkt ausprobieren, sodass Sie sich schnell in der Welt der Programmierer zuhause fühlen.

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

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 584

Veröffentlichungsjahr: 2018

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.



Python programmieren lernen für Dummies

Schummelseite

DIE VIER GÄNGIGSTEN PYTHON-PROGRAMMIERSTILE

Vielleicht zählen Sie ja zu den Programmierern oder Entwicklern, die keine Lust haben, einen neuen Programmierstil zu erlernen. Dann ist Python eine großartige Sprache für Sie. Die meisten Programmiersprachen sind auf einen Programmierstil festgelegt, was die Flexibilität der Programmierer einschränkt. Python ist in dieser Hinsicht jedoch anders. Mit ihm können Sie auf eine Reihe verschiedener Programmierstile zurückgreifen, um unterschiedliche Effekte zu erreichen. Unter den verschiedenen Python-Programmierstilen sind dies die vier verbreitetsten:

Funktional: Jede Anweisung ist eine Art mathematische Gleichung. Dieser Programmierstil eignet sich gut für parallel zu verarbeitende Aktivitäten. Akademiker und Informatiker arbeiten gerne so. Es hindert Sie jedoch niemand daran, funktional zu programmieren, wenn Sie in keine der genannten Kategorien fallen.Imperativ: Berechnungen erfolgen bei Änderungen des Programmzustands. Dieser Stil wird meist zur Verarbeitung von Datenstrukturen eingesetzt. Wissenschaftler aller Disziplinen verlassen sich auf diesen Programmierstil, weil sich mit ihm Prozesse äußerst klar abbilden lassen.Objektorientiert: Dieser Stil wird verbreitet von anderen Sprachen verwendet, um die Codierung von Objekten zu vereinfachen, die der realen Umwelt nachgebildet sind. Python implementiert diesen Programmierstil nicht vollständig, weil bestimmte Features wie die Kapselung (das Verstecken von Daten) nicht unterstützt werden. Sie können diesen Programmierstil aber in beachtlichem Umfang nutzen. Die meisten Entwickler programmieren objektorientiert, andere Gruppen können so arbeiten, wenn es komplexere Anwendungen zu erstellen gilt.Prozedural: Die meisten Leute starten mit prozeduralem Code, in dem Aufgaben schrittweise ausgeführt werden, wenn sie programmieren lernen. Dieser Programmierstil wird meist für Iterationen, Sequenzierung, Auswahl und Modularisierung verwendet. Das sind die einfachsten Programmiervorgänge, die Sie einsetzen können. Nichtprogrammierer bevorzugen diesen Stil, weil sich mit ihm relativ unkompliziert kleinere, experimentelle Aufgaben lösen lassen.

Python programmieren lernen für Dummies

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.

2. Auflage 2018

© 2018 WILEY-VCH Verlag GmbH & Co. KGaA, Weinheim

Original English language edition Beginning Programming with Python For Dummies © 2018 by Wiley Publishing, Inc. All rights reserved including the right of reproduction in whole or in part in any form. This translation published by arrangement with John Wiley and Sons, Inc.

Copyright der englischsprachigen Originalausgabe Beginning Programming with Python For Dummies © 2018 by Wiley Publishing, Inc. Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Diese Übersetzung wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.

Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.

Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.

Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.

Print ISBN: 978-3-527-71490-2

ePub ISBN: 978-3-527-81547-0

Coverfoto: AdamGregor/iStock/Thinkstock

Korrektur: Isolde Kommer, Großerlach

Über den Autor

John Paul Mueller ist freier Autor und technischer Redakteur. Das Schreiben liegt ihm im Blut. Bisher hat er 104 Bücher und über 600 Artikel verfasst. Die Themen reichen dabei von Netzwerken bis hin zur künstlichen Intelligenz und von Datenbankverwaltung bis hin zur praktischen Programmierung (zum Beispiel C++ Alles-in-einem-Band für Dummies). Einige seiner aktuellen Bücher befassen sich mit Data Science, maschinellem Lernen und Algorithmen – alle mit Beispielprogrammen in Python. Als technischer Redakteur hat er mehr als 70 Autoren darin unterstützt, den Inhalt ihrer Manuskripte zu verbessern. John Paul Mueller war in verschiedenen Bereichen als Berater tätig und erstellt Zertifizierungsprüfungen. Sie sollten seinen Blog unter http://blog.johnmuellerbooks.com/ nicht verpassen. Per Mail können Sie ihn unter [email protected] erreichen (bitte nur auf Englisch). Seine Website finden Sie unter http://www.johnmuellerbooks.com/.

Inhaltsverzeichnis

Cover

Titelseite

Impressum

Über den Autor

Einleitung

Über dieses Buch

Törichte Annahmen über den Leser

Symbole in diesem Buch

Über das Buch hinaus

Wie geht es weiter?

Teil I: Erste Schritte mit Python

Kapitel 1: Die Kommunikation mit Ihrem Computer

Warum wollen Sie sich mit Ihrem Computer unterhalten?

Anwendungen als eine Art von Kommunikation

Was sind Anwendungen eigentlich?

Warum Python so cool ist

Kapitel 2: Installieren Sie sich Ihr eigenes Python

Die benötigte Version herunterladen

Python installieren

Auf Python auf Ihrem System zugreifen

Ihre Installation testen

Kapitel 3: Mit Python arbeiten

Python über die Kommandozeile starten

Einzelne Befehle eingeben

Die Hilfe verwenden

Die Python-Kommandozeile schließen

Kapitel 4: Ihre erste Anwendung

Warum IDEs derart wichtig sind

So erhalten Sie Ihre Anaconda-Kopie

Datensätze und Beispielcode herunterladen

Eine Anwendung erstellen

Einrückungen verstehen

Kommentare einfügen

Jupyter Notebook schließen

Kapitel 5: Mit Anaconda arbeiten

Ihren Code herunterladen

Mit Checkpoints arbeiten

Zellen bearbeiten

Das Aussehen von Jupyter Notebook ändern

Mit dem Kernel zusammenarbeiten

Hilfe anfordern

Magische Funktionen nutzen

Laufende Prozesse anzeigen

Teil II: Elementare Python-Bausteine

Kapitel 6: Daten speichern und ändern

Daten speichern

Grundlegende Datentypen von Python

Datum und Uhrzeit

Kapitel 7: Daten verwalten

Steuern, wie Python Daten interpretiert

Mit Operatoren arbeiten

Erstellen und Verwenden von Funktionen

Benutzereingaben

Kapitel 8: Entscheidungen treffen

Einfache Entscheidungen mit der »if«-Anweisung treffen

Mit der »if…else«-Anweisung Optionen auswählen

Verschachtelte Entscheidungen nutzen

Kapitel 9: Sich wiederholende Aufgaben ausführen

Daten mit der »for«-Schleife verarbeiten

Daten mit der »while«-Anweisung verarbeiten

Schleifen verschachteln

Kapitel 10: Fehlerbehandlung in Programmen

Warum versteht Python mich nicht?

Fehlerquellen erkennen

Ausnahmen abfangen

Ausnahmefehler auslösen

Benutzerdefinierte Ausnahmen erstellen und verwenden

Die »finally«-Klausel

Teil III: Alltägliche Aufgabenstellungen

Kapitel 11: Mit Paketen arbeiten

Code gruppieren

Pakete importieren

Pakete auf Datenträgern finden

Pakete aus anderen Quellen herunterladen

Sich den Paketinhalt ansehen

Die Paketdokumentation verwenden

Kapitel 12: Mit Zeichenketten arbeiten

Zeichenketten sind anders

Zeichenketten mit Sonderzeichen erstellen

Einzelne Zeichen auswählen

Zeichenketten schneiden und würfeln

Einen Wert in einem String finden

Zeichenketten formatieren

Kapitel 13: Listen verwalten

Daten in einer Anwendung strukturieren

Listen erstellen

Auf Listen zugreifen

Listen durchlaufen

Listen bearbeiten

Listen durchsuchen

Listen sortieren

Listen drucken

Mit dem Counter-Objekt arbeiten

Kapitel 14: Verschiedenartige Daten sammeln

So funktionieren Collections

Mit Tupeln arbeiten

Mit Dictionaries arbeiten

Stapel mithilfe von Listen erstellen

Mit Warteschlangen arbeiten

Mit Deques arbeiten

Kapitel 15: Klassen erstellen und verwenden

Klassen als Strukturierungshilfe

Komponenten einer Klasse

Eine Klasse erstellen

Die Klasse in einer Anwendung verwenden

Eine Klasse erweitern, um neue Klassen zu schaffen

Teil IV: Anspruchsvollere Aufgaben

Kapitel 16: Daten in Dateien speichern

Wie die permanente Datenspeicherung funktioniert

Daten für die permanente Speicherung erstellen

Eine Datei erstellen

Dateiinhalte lesen

Dateiinhalte aktualisieren

Eine Datei löschen

Kapitel 17: E-Mails versenden

Das passiert, wenn man E-Mails versendet

Eine E-Mail-Nachricht erstellen

Sich die E-Mail-Ausgabe anschauen

Teil V: Der Top-Ten-Teil

Kapitel 18: Zehn tolle Quellen für Programmierer

Die Python-Online-Dokumentation nutzen

Das Tutorial LearnPython.org nutzen

Webanwendungen mit Python programmieren

Zusätzliche Bibliotheken beschaffen

Schneller Anwendungenmit einer IDE erstellen

Einfachere Syntaxprüfung

XML sinnvoll nutzen

Die üblichen Anfängerfehler in Python vermeiden

Unicode verstehen

Machen Sie Ihrer Python-Anwendung Beine

Kapitel 19: Zehn Möglichkeiten, mit Python Geld zu verdienen

In der Qualitätssicherung arbeiten

IT-Mitarbeiter in einer kleinen Firma werden

Spezialskripte für Anwendungen schreiben

Netzwerkadministration

Programmierkenntnisse vermitteln

Leuten dabei helfen, einen bestimmten Ort zu finden

Data Mining nutzen

Mit eingebetteten Systemen arbeiten

Wissenschaftliche Aufgaben erledigen

Echtzeitanalyse von Daten

Kapitel 20: Zehn Tools zur Erweiterung von Python

Programmfehler mit dem Roundup Issue Tracker dokumentieren

Eine virtuelle Umgebung mit VirtualEnv erstellen

Ihre Anwendung mit PyInstaller installieren

Eine Entwicklerdokumentation mit pdoc erzeugen

Anwendungscode mit Komodo Edit entwickeln

Ihre Anwendung mit pydbgr debuggen

Interaktive Umgebungen mit IPython betreten

Anwendungen mit PyUnit testen

Ihren Code mit Isort aufräumen

Versionskontrolle mit Mercurial

Kapitel 21: Gut zehn Bibliotheken, die Sie kennen sollten

Eine sichere Umgebung mit PyCrypo entwickeln

Auf Datenbanken mit SQLAlchemy zugreifen

Die Welt mit Google Maps bereisen

Benutzeroberflächen mit TkInter erstellen

Tabellarische Daten mit PrettyTable ansprechend präsentieren

Anwendungen mit PyAudio und Soundausgabe aufwerten

Abbildungen mit PyQtGraph bearbeiten

Daten mit IRLib finden

Interoperable Java-Umgebungen mit JPype erstellen

Auf lokale Netzwerkressourcen mit Twisted Matrix zugreifen

Auf Internet-Ressourcen mit Bibliotheken zugreifen

Stichwortverzeichnis

End User License Agreement

Tabellenverzeichnis

Kapitel 1

Tabelle 1.1: Große Organisationen, die Python einsetzen

Kapitel 5

Tabelle 5.1: Häufig genutzte magische Notebook- und IPython-Funktionen

Kapitel 7

Tabelle 7.1: Unäre Operatoren in Python

Tabelle 7.2: Arithmetische Operatoren in Python

Tabelle 7.3: Vergleichsoperatoren in Python

Tabelle 7.4: Logische Operatoren in Python

Tabelle 7.5: Bitweise Operatoren in Python

Tabelle 7.6: Zuweisungsoperatoren in Python

Tabelle 7.7: Membership-Operatoren in Python

Tabelle 7.8: Identitätsoperatoren in Python

Tabelle 7.9: Auswertungsreihenfolge der Operatoren in Python

Kapitel 12

Tabelle 12.1: Escape-Sequenzen in Python

Illustrationsverzeichnis

Kapitel 1

Abbildung 1.1: Die Kommunikation mit Ihrem Computer bleibt transparent, solange Sie nicht anfangen, genauer darüber nachdenken.

Kapitel 2

Abbildung 2.1: Über

https://www.python.org/downloads

erreichen Sie Python-Download-Seiten mit Links für alle möglichen Systeme.

Abbildung 2.2: Freiwillige haben Python auf vielen verschiedenen Plattformen verfügbar gemacht.

Abbildung 2.3: Der Installationsvorgang beginnt mit der Frage, wer Zugriff auf Python haben soll.

Abbildung 2.4: Wählen Sie die Funktionen für Ihre Python-Installation aus.

Abbildung 2.5: Geben Sie einen Installationsordner für Ihre Python-Installation an.

Abbildung 2.6: Nachinstallieren der Synaptic-Paketverwaltung unter Ubuntu 16.4 LTS

Abbildung 2.7: Python und IDLE über die Synaptic-Paketverwaltung installieren

Abbildung 2.8: Verwenden Sie IDLE, wenn Sie vom Komfort einer grafischen Benutzeroberfläche profitieren wollen.

Abbildung 2.9: Verwenden Sie die Kommandozeile, wenn Sie die Geschwindigkeit und Flexibilität einer Kommandozeilen-Benutzerschnittstelle schätzen.

Abbildung 2.10: Wenn Sie eine herkömmliche Kommandozeile verwenden, können Sie mithilfe von Parametern die Ausführung von Python beeinflussen.

Abbildung 2.11: Der

print()

-Befehl gibt alle ihm übergebenen Daten aus.

Abbildung 2.12: Python unterstützt in der interaktiven Umgebung die direkte Eingabe mathematischer Operationen.

Abbildung 2.13: IDLE dramatisiert etwas, wenn es um das Beenden einer Sitzung geht!

Kapitel 3

Abbildung 3.1: Die Python-Kommandozeile teilt Ihnen etwas über Ihre Python-Umgebung mit.

Abbildung 3.2: Wenn man Befehle eingibt, teilt man Python mit, was der Computer machen soll.

Abbildung 3.3: Im Hilfemodus können Sie Python zu weiteren Befehlen befragen.

Abbildung 3.4:

topics

liefert Ihnen einen Einstiegspunkt für Ihr Python-Abenteuer.

Abbildung 3.5: Sie können sich über einen Befehl informieren, wenn Sie ihn genauso eingeben, wie er normalerweise geschrieben wird.

Abbildung 3.6: Sie können um Hilfe zur angezeigten Hilfe bitten.

Abbildung 3.7: Verlassen Sie die Hilfe durch Drücken der Eingabetaste.

Abbildung 3.8: In Python können Sie die Hilfe bei Bedarf jederzeit aufrufen, ohne Python verlassen zu müssen.

Abbildung 3.9: Sie können die Hilfe auch über die Python-Eingabeaufforderung durchstöbern.

Abbildung 3.10: Geben Sie einen Fehlercode aus, wenn andere den Exit-Code Ihrer Anwendung benötigen.

Kapitel 4

Abbildung 4.1: Zu Beginn teilt Ihnen das Setup-Programm mit, ob Sie eine 64-Bit-Version nutzen.

Abbildung 4.2: Teilen Sie dem Assistenten mit, wie Anaconda auf Ihrem System installiert werden soll.

Abbildung 4.3: Geben Sie ein Verzeichnis als Ziel der Installation an.

Abbildung 4.4: Konfigurieren Sie die erweiterten Optionen.

Abbildung 4.5: Unter Windows 10 können Sie Jupyter Notebook im Startmenü über das Befehlseingabefeld starten.

Abbildung 4.6: Ein Symbol für Jupyter Notebook an das Windows-Startmenü anheften

Abbildung 4.7: Jupyter Notebook im Startmenü von Windows 10

Abbildung 4.8: Jupyter-Notebook-Fenster

Abbildung 4.9: Neue Ordner werden als »Untitled Folder« angezeigt.

Abbildung 4.10: Benennen Sie den Ordner so um, dass Sie sich an die in ihm enthaltenen Einträge erinnern können.

Abbildung 4.11: Ein Notebook enthält Zellen, die Ihre Quelltexte aufnehmen können.

Abbildung 4.12: Geben Sie einen neuen Namen für Ihr Notebook ein.

Abbildung 4.13: Notebook speichert Ihren Code in Zellen.

Abbildung 4.14: Alle von Ihnen erstellten Notebooks werden in der Repository-Liste angezeigt.

Abbildung 4.15: Notebook warnt Sie, bevor es Dateien aus dem Repositorium löscht.

Abbildung 4.16: Die Dateien, die ins Repository aufgenommen werden sollen, werden in die Upload-Liste integriert, die mindestens einen Dateinamen enthält.

Abbildung 4.17: Zellen werden in Notebook einzeln ausgeführt.

Abbildung 4.18: Zellen können in Notebook in beliebiger Reihenfolge ausgeführt werden.

Abbildung 4.19: Änderungen der Daten wirken sich auf alle Zellen aus, von denen die geänderte Variable verwendet wird.

Abbildung 4.20: Mit Überschriften können Sie Ihre Quelltexte unterteilen und dokumentieren.

Abbildung 4.21: Durch die Verwendung von Überschriftebenen können Zellinhalte betont werden.

Abbildung 4.22: Notebook rückt bestimmten Text automatisch ein.

Abbildung 4.23: Verwenden Sie Verkettungen von Text, damit mehrere Zeilen Text in einer Zeile in der Ausgabe erscheinen.

Abbildung 4.24: Mehrzeilige Kommentare funktionieren zwar, erzeugen aber auch eine Ausgabe.

Abbildung 4.25: Benutzen Sie Kommentare, um das Ausführen von Code zu verhindern.

Abbildung 4.26: Sorgen Sie dafür, dass Sie das Serverfenster schließen.

Kapitel 5

Abbildung 5.1: Einige der Ausgabeformate können Sie direkt in Ihrem Browser öffnen.

Abbildung 5.2: Nutzen Sie das Dialogfeld »Command Palette«, um benötigte Befehle zu finden.

Abbildung 5.3: Zeilennummern vereinfachen die Zusammenarbeit mit Dritten.

Abbildung 5.4: Benutzen Sie die Schaltflächen in den Zell-Werkzeugleisten, um die zugrunde liegenden Zellinhalte ändern zu können.

Abbildung 5.5: Der Kernel zeigt seine Befehle in einem eigenständigen Jupyter-Notebook-Fenster an.

Abbildung 5.6: Sie können die Tastaturkürzel im Kommandomodus an Ihre Bedürfnisse anpassen.

Abbildung 5.7: Die Funktion »%lsmagic« zeigt Ihnen eine Liste der magischen Funktionen an.

Abbildung 5.8: Sehen Sie sich die an Ihr System angeschlossenen Terminals und die geöffneten Notebooks an.

Kapitel 6

Abbildung 6.1: Verwenden Sie den Zuweisungsoperator, um Daten in Variablen abzulegen.

Abbildung 6.2: Integer haben viele interessante Fähigkeiten, unter anderem die Möglichkeit, verschiedene Zahlensysteme zu benutzen.

Abbildung 6.3: Fließkommazahlen bieten verschiedene Zuweisungsmethoden an.

Abbildung 6.4: Einen String in eine Zahl zu konvertieren, ist mit den Befehlen

int()

und

float()

ganz einfach.

Abbildung 6.5: Sie können auch Zahlen in Strings umwandeln.

Abbildung 6.6: Der Befehl

now()

gibt das aktuelle Datum und die Uhrzeit aus.

Abbildung 6.7: Bringen Sie Datum und Uhrzeit mit dem Befehl

str()

in eine lesbare Form.

Kapitel 7

Abbildung 7.1: Geben Sie Ihrer Funktion einen Namen.

Abbildung 7.2: Notebook erwartet Ihre nächste Anweisung.

Abbildung 7.3: Immer wenn Sie den Funktionsnamen eingeben, wird Ihnen die Ausgabe der Funktion angezeigt.

Abbildung 7.4: Sie müssen einen Parameter übergeben, um keine Fehlermeldung zu erhalten.

Abbildung 7.5: Mit

Hallo2()

können Sie beliebige Nachrichten ausgeben.

Abbildung 7.6: Geben Sie möglichst immer Standardwerte vor, um die Verwendung von Funktionen zu erleichtern.

Abbildung 7.7: Durch Funktionen mit variabler Parameteranzahl werden Anwendungen flexibler.

Abbildung 7.8: Rückgabewerte vergrößern den Nutzen Ihrer Funktionen noch mehr.

Abbildung 7.9: Verwenden Sie Ihre Funktionen, um viele unterschiedliche Aufgaben zu erfüllen.

Abbildung 7.10: Nach Eingabe des Benutzernamens wird dieser begrüßt.

Abbildung 7.11: Durch Datenumwandlung lässt sich zwar der Datentyp der Eingabe ändern, sie kann aber auch Fehler verursachen.

Kapitel 8

Abbildung 8.1: Einfache

if

-Anweisungen sagen Ihrer Anwendung, was sie in bestimmten Situationen tun soll.

Abbildung 8.2: Ein Codeblock kann mehrere Zeilen Code enthalten – eine für jede Aufgabe.

Abbildung 8.3: Die Anwendung prüft, ob der Wert im richtigen Bereich liegt, und gibt eine Meldung aus.

Abbildung 8.4: Hat die Eingabe einen falschen Datentyp, führt sie zu einem Fehler.

Abbildung 8.5: Es ist immer gut, bei falschen Eingaben sinnvolle Rückmeldungen zu geben.

Abbildung 8.6: Mit Auswahlmenüs können Sie eine Option aus einer Liste auswählen.

Abbildung 8.7: Ihre Anwendungen sollten fehlerhafte Eingaben erkennen können.

Abbildung 8.8: Mit mehreren Entscheidungsebenen können Sie komplexere Aufgaben ausführen.

Kapitel 9

Abbildung 9.1: Verwenden Sie die

for

-Schleife, um jeden Buchstaben einer Zeichenkette nacheinander zu verarbeiten.

Abbildung 9.2: Eine kurze Zeichenkette wird von der Anwendung verarbeitet.

Abbildung 9.3: Zu lange Zeichenketten werden abgeschnitten, damit sie eine gewisse Länge einhalten.

Abbildung 9.4: Verwenden Sie die

continue

-Klausel, um die Verarbeitung bestimmter Elemente zu verhindern.

Abbildung 9.5: Bei Verwendung der

pass

-Klausel wird Code nach unerwünschten Eingaben weiter ausgeführt.

Abbildung 9.6: Mit der

else

-Klausel können Sie Aufgaben für leere Sequenzen ausführen.

Abbildung 9.7: Diese einfache

while

-Schleife gibt eine Zahlenreihe aus.

Abbildung 9.8: Dank ihrer Formatierung schmeichelt die Multiplikationstabelle dem Auge.

Kapitel 10

Abbildung 10.1: Wenn Sie einen falschen Datentyp eingeben, wird eine Fehlermeldung statt einer Ausnahme ausgegeben.

Abbildung 10.2: Die Ausnahmebehandlung prüft, ob die Zahl im richtigen Wertebereich liegt.

Abbildung 10.3: Die Exception-Handler befinden sich in der falschen Reihenfolge.

Abbildung 10.4: Mit der generischen Ausnahmefehlerbehandlung lässt sich der Ausnahmefehler

KeyboardInterrupt

abfangen.

Abbildung 10.5: Versuche, nicht vorhandene Dateien zu öffnen, können nicht funktionieren.

Abbildung 10.6: Mit der Verwendung mehrerer

except

-Klauseln können Sie spezifische Fehlermeldungen ausgeben.

Abbildung 10.7: Die Reihenfolge, in der Python Ausnahmen behandelt, ist wichtig.

Abbildung 10.8: Mit verwertbaren Werten werden sinnvolle Ergebnisse erzeugt.

Abbildung 10.9: Bei Verwendung von Schleifen können Anwendungen Programme nach dem Auftreten von Fehlern fortsetzen.

Abbildung 10.10: Die innere Ausnahmebehandlung kümmert sich um weitere Eingaben.

Abbildung 10.11: Die äußere Behandlungsroutine kümmert sich um Ausnahmefehler bei der ersten Eingabe.

Abbildung 10.12: Für das Auslösen einer Ausnahme müssen Sie lediglich raise verwenden.

Abbildung 10.13: Sie können Ausnahmefehler um zusätzliche Angaben erweitern.

Abbildung 10.14: Durch benutzerdefinierte Ausnahmen wird Ihr Code besser verständlich.

Abbildung 10.15: Verwenden Sie die

finally

-Klausel, um bestimmte Aktionen vor dem Beenden der Anwendung auf jeden Fall noch auszuführen.

Abbildung 10.16: Prägen Sie sich ein, dass die

finally

-Klausel immer ausgeführt wird.

Kapitel 11

Abbildung 11.1: Sorgen Sie dafür, dass sich eine Kopie des Pakets in Ihrem

BPPD

-Ordner befindet.

Abbildung 11.2: Eine Liste der Anaconda-spezifischen Pakete können Sie sich mit dem Dienstprogramm

conda

über das Anaconda-Prompt anzeigen lassen.

Abbildung 11.3: Die Auflistung des Verzeichnisses zeigt, dass Python beide Funktionen aus dem Paket importiert.

Abbildung 11.4: Die Funktionen

HalloSagen()

und

AufWiedersehenSagen()

geben die erwarteten Grußformeln aus.

Abbildung 11.5: Das Entfernen eines Pakets aus der Umgebung erfordert zwei Schritte.

Abbildung 11.6: Mit der Funktion

dir()

erhalten Sie Informationen über die von Ihnen importierten Attribute.

Abbildung 11.7: Für die Funktion

HalloSagen()

wird der Paketname nicht mehr benötigt.

Abbildung 11.8: Das Attribut sys.path enthält eine Auflistung der einzelnen Pfade für Ihr System.

Abbildung 11.9: Sie müssen Informationen aus Umgebungsvariablen separat abrufen.

Abbildung 11.10: Anaconda Prompt im Startmenü von Windows 10

Abbildung 11.11: Die Ausgabe von »conda list« ist ein wenig länger und könnte den Puffer für die Bildschirmausgabe sprengen.

Abbildung 11.12: Bei der Suche werden deutlich mehr Informationen als bei list angezeigt.

Abbildung 11.13: Wählen Sie eine Version des Pakets aus, das Sie einsetzen wollen.

Abbildung 11.14: Machen Sie die Paketversion ausfindig, die Sie installieren wollen.

Abbildung 11.15: Während der Aktualisierung werden eine Menge Informationen angezeigt.

Abbildung 11.16: Ein einzelnes Paket kann enorme Auswirkungen haben.

Abbildung 11.17: Gehen Sie in der Pakethierarchie so weit nach unten wie erforderlich, um die von Ihnen verwendeten Pakete zu verstehen.

Abbildung 11.18: Versuchen Sie, ein paar hilfreiche Informationen über ein Attribut zu erhalten.

Abbildung 11.19: Wenn Sie die Attribute ausprobieren, bekommen Sie ein Gefühl dafür, wie diese funktionieren.

Abbildung 11.20: Durch das direkte Betrachten des Quellcodes eines Pakets können Sie diesen besser verstehen.

Abbildung 11.21: Ihr Browser zeigt Ihnen eine Reihe von Links als Teil der Indexseite an.

Abbildung 11.22: Auf der Seite

TOPICS

finden Sie Informationen zu grundlegenden Python-Themen, zum Beispiel zu booleschen Werten.

Abbildung 11.23: Mit

GET

erhalten Sie Informationen zu einem bestimmten Suchbegriff.

Abbildung 11.24: Mit

SEARCH

wird Ihnen eine Themenliste zu einem bestimmten Suchbegriff angezeigt.

Kapitel 12

Abbildung 12.1: Zeichenketten bestehen aus einzelnen Zeichen, die miteinander verbunden sind.

Abbildung 12.2: Sonderzeichen können Sie bei Bedarf verwenden, wenn Sie spezielle Informationen darstellen oder die Ausgabe formatieren wollen.

Abbildung 12.3: Sie können einzelne Teile einer Zeichenkette auswählen.

Abbildung 12.4: Die Manipulation von Strings wird durch Funktionen sehr viel flexibler.

Abbildung 12.5: Python bietet Funktionen an, die das Suchen und Ersetzen von Teilstrings sehr komfortabel machen.

Abbildung 12.6: Um Daten genau wie gewünscht darzustellen, können Sie Formatierungsfunktionen verwenden.

Kapitel 13

Abbildung 13.1: Eine Liste ist einfach eine Sequenz von Elementen.

Abbildung 13.2: Den zu einer Liste hinzugefügten Elementen wird jeweils der nächste freie Platz im Hauptspeicher zugeordnet.

Abbildung 13.3: Python gibt den Inhalt von

Liste1

aus.

Abbildung 13.4: Python zeigt Ihnen eine Liste aller Aktionen an, die Sie für Listen ausführen können.

Abbildung 13.5: Sie müssen immer den korrekten Index eingeben.

Abbildung 13.6: Mit Bereichsangaben lassen sich mehrere Werte zurückgeben.

Abbildung 13.7: Lässt man den Endindex eines Wertebereichs leer, wird der Listenrest ausgegeben.

Abbildung 13.8: Lässt man den Startindex leer, werden alle Elemente ab Element 0 ausgegeben.

Abbildung 13.9: Mit einer Schleife können Sie sehr einfach auf eine Kopie jedes Elements zugreifen und sie bearbeiten.

Abbildung 13.10: Sie können in Ihrer Anwendung bei Bedarf prüfen, ob eine Liste leer ist.

Abbildung 13.11: Das Anhängen eines Elements speichert den Wert am Ende der Liste und verändert die Länge der Liste.

Abbildung 13.12: Mit der Funktion

insert()

können Sie ein Element an einer beliebigen Stelle einfügen.

Abbildung 13.13: Mit den Funktionen

copy()

und

extend()

können Sie schnell viele Daten kopieren und einfügen.

Abbildung 13.14: Mit

pop()

können Sie Elemente am Ende der Liste entfernen.

Abbildung 13.15: Existiert eine Farbe in der Liste, wird eine Erfolgsmeldung ausgegeben.

Abbildung 13.16: Gibt man eine Farbe ein, die in der Liste nicht existiert, wird eine Fehlermeldung ausgegeben.

Abbildung 13.17: Mit der Funktion

sort()

ist das Sortieren einer Liste ganz einfach.

Abbildung 13.18: Durch die Nutzung des Splat-Operators wird Ihr Code deutlich kürzer.

Abbildung 13.19: Mit String-Funktionen können Sie Ihre Ausgabe speziell formatieren.

Abbildung 13.20: Verwenden Sie die Funktion »format()«, um bestimmte Arten von Ausgaben mit Ihren Anwendungen zu erhalten.

Abbildung 13.21: Das Counter-Objekt ist praktisch, wenn Statistiken zu sehr langen Listen benötigt werden.

Kapitel 14

Abbildung 14.1: Tupel werden in runden statt eckigen Klammern angeben.

Abbildung 14.2: Für Tupel scheint es weniger Funktionen zu geben.

Abbildung 14.3: Die neue Kopie von MeinTupel enthält einen zusätzlichen Eintrag.

Abbildung 14.4: Verwenden Sie Indexe, um auf einzelne Tupeleinträge zugreifen zu können.

Abbildung 14.5: Ein Dictionary speichert die Einträge in sortierter Reihenfolge.

Abbildung 14.6: Mit Dictionarys wird der Zugriff auf Einträge über deren Wert leicht und selbstbeschreibend.

Abbildung 14.7: Sie können sich bei Dictionaries eine Liste der Schlüssel ausgeben lassen.

Abbildung 14.8: Aussagekräftige Schlüssel können die Datenausgabe erleichtern.

Abbildung 14.9: Dictionaries können sehr einfach geändert werden.

Abbildung 14.10: Die Anwendung zeigt zu Beginn das Auswahlmenü an.

Abbildung 14.11: Die Anwendung zeigt das Menü wieder an, nachdem sie Ihre Auswahl ausgegeben hat.

Abbildung 14.12: Neue Werte werden oben auf dem Stapel abgelegt.

Abbildung 14.13: Ist der Stapel voll, kann man darauf keinen neuen Eintrag speichern.

Abbildung 14.14: Die Funktion

pop()

entfernt einen Eintrag von der Oberseite des Stapels.

Abbildung 14.15: Sorgen Sie dafür, dass Ihre Anwendung Über- und Unterläufe erkennen kann.

Abbildung 14.16: Speichert die Anwendung neue Einträge in der Warteschlange, gibt diese nicht mehr an, dass sie leer ist.

Abbildung 14.17: Die Eigenschaften einer Warteschlange muss man sehr häufig prüfen.

Abbildung 14.18: Eine Deque hat zwei Enden und die entsprechenden Funktionen, um diese zu verwalten.

Kapitel 15

Abbildung 15.1: Die Instanz enthält die benötigte Variable.

Abbildung 15.2: Der Klassenname stimmt auch. Also wissen Sie nun, dass die Instanz mit

MeineKlasse

erzeugt wurde.

Abbildung 15.3: Verwenden Sie die Funktion

dir()

, um herauszufinden, welche integrierten Attribute es gibt.

Abbildung 15.4: Python stellt Ihnen zu jedem Attribut, das es Ihrer Klasse hinzufügt, einen Hilfeeintrag zur Verfügung.

Abbildung 15.5: Die Klassenmethode gibt eine einfache Nachricht aus.

Abbildung 15.6: Die Instanzmethode wird als Teil des Objekts aufgerufen und gibt eine einfache Nachricht aus.

Abbildung 15.7: Die erste Version des Konstruktors stellt einen Standardwert für den Namen zur Verfügung.

Abbildung 15.8: Übergibt man dem Konstruktor einen Namen, wird die Ausgabe entsprechend angepasst.

Abbildung 15.9: Sie können den Wert von

Gruss

ändern.

Abbildung 15.10: Die Änderung von

Gruss

überträgt sich in die Instanz.

Abbildung 15.11: Als Ausgabe erhält man einfach die Summe zweier Zahlen.

Abbildung 15.12: Der Code kann eine beliebige Anzahl an Listeneinträgen verarbeiten.

Abbildung 15.13: Wenn man zwei Objekte der Klasse

MeineKlasse

miteinander addiert, erhält man als Ergebnis ein Objekt desselben Typs.

Abbildung 15.14: Die Ausgabe zeigt, dass die Klasse voll funktionsfähig ist.

Abbildung 15.15: Hildegard hat Geburtstag und sagt ein paar Worte.

Kapitel 16

Abbildung 16.1: Das Beispiel zeigt, wie die Daten im CSV-Format aussehen.

Abbildung 16.2: Die Ausgabe der Anwendung in Excel

Abbildung 16.3: Die ausgegebene .csv-Datei in WordPad

Abbildung 16.4: Die Daten, nachdem sie durch die Anwendung verarbeitet wurden

Abbildung 16.5: Die Anwendung zeigt die einzelnen Änderungen direkt an.

Abbildung 16.6: Die geänderten Daten erscheinen in der Datei

GeänderteDatei.csv

wie erwartet.

Kapitel 17

Abbildung 17.1: Die

localhost

-Adresse bezieht sich auf Ihren Computer.

Abbildung 17.2: Adressen, die Sie zum Versenden von E-Mails verwenden, sind über das ganze Internet hinweg eindeutig.

Abbildung 17.3: Der

localhost

hat sowohl eine IPv6-Adresse als auch eine IPv4-Adresse.

Abbildung 17.4: Viele Webserver stellen nur eine IPv4-Adresse bereit.

Abbildung 17.5: Standardisierte Ports bieten bestimmte Dienste auf jedem Server an.

Abbildung 17.6: Manchmal müssen Sie den Namen des lokalen Rechners kennen.

Abbildung 17.7: Vermeiden Sie möglichst die Verwendung von fest codierten Werten für das lokale System.

Abbildung 17.8: Python fügt Ihrer Nachricht ein paar zusätzliche Daten hinzu, die benötigt werden, damit sie funktioniert.

Abbildung 17.9: Die Testnachricht in der Statusleiste eines Android-Tablets

Abbildung 17.10: Die HTML-Ausgabe enthält wie erwartet eine Überschrift und einen Textabschnitt.

Guide

Cover

Inhaltsverzeichnis

Begin Reading

Pages

C1

1

2

3

4

5

6

9

10

11

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

111

112

113

114

115

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

177

178

179

180

181

182

183

184

185

186

187

188

189

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

404

405

406

407

E1

Einleitung

Python ist ein Beispiel für eine Sprache, die in ihrem speziellen Bereich alles richtig macht. Das ist nicht nur meine Meinung: Die Programmierer haben durch die Nutzung der Sprache Python abgestimmt und sie mittlerweile weltweit zur Nummer 4 unter den Computersprachen gemacht (eine Rangliste dazu finden sie unter https://www.tiobe.com/tiobe-index/). Das Tolle an Python ist, dass Sie tatsächlich Anwendungen auf einem System schreiben und sie dann auf jeder anderen Zielplattform verwenden können. Im Gegensatz zu anderen Programmiersprachen, die Plattformunabhängigkeit versprechen, bietet Python diese Unabhängigkeit tatsächlich. Python hat in dieser Hinsicht sein Versprechen gehalten.

Python legt den Schwerpunkt auf die Lesbarkeit des Codes und eine sparsame Syntax, mit der Sie Anwendungen mit weniger Codezeilen als in anderen Sprachen schreiben können. Sie können auch einen Programmierstil verwenden, der Ihren Anforderungen gerecht wird, zumindest sofern Python diese funktionalen, imperativen, objektorientierten und prozeduralen Programmierstile auch unterstützt (mehr dazu erfahren Sie in Kapitel 3). Außerdem ist Python aufgrund seiner Eigenschaften in sehr vielen Bereichen vertreten, in denen auch Quereinsteiger und nicht nur reine Programmierer tätig sind. Die vorliegende zweite Auflage von Python programmieren lernen für Dummies wurde geschrieben, um allen – Programmierern und Nichtprogrammierern – zu helfen, Python schnell einsetzen zu können.

Mancher sieht Python als Skriptsprache, aber eigentlich ist es sehr viel mehr als das. (Kapitel 19 vermittelt Ihnen einen Eindruck davon, in welchen Bereichen Python genutzt wird.) Wie dem auch sei, Python stellt seine Fähigkeiten im Bildungssektor und in anderen Bereichen unter Beweis, für deren Anforderungen andere Programmiersprachen möglicherweise nicht geeignet sind. Tatsächlich wird für die Programmierbeispiele in diesem Buch Jupypter Notebook verwendet, das sich das vom Stanforder Computerwissenschaftler Donald Knuth propagierte Programmierparadigma der guten Lesbarkeit auf die Fahnen schreibt (mehr dazu in Kapitel 4). Auch Ihre Programme werden am Ende wie sehr gut lesbare Berichte aussehen, die beinahe jedermann leicht verstehen kann.

Über dieses Buch

In Python programmieren lernen für Dummies dreht sich alles um den schnellen Einstieg in Python. Sie möchten die Sprache sicherlich schnell erlernen, um Ihre eigentliche Arbeit zu erledigen, egal worum es sich dabei handelt. Anders als andere Bücher zeigt Ihnen dieses Buch von Anfang an, wie sich Python von anderen Sprachen unterscheidet und wie es Ihnen dabei helfen kann, als Nicht-Programmierer gute Arbeit zu leisten. Durch Praxisbeispiele und wirklich sinnvolle Aufgaben verstehen Sie von Anfang an, wie der Hase läuft. Dabei lernen Sie auch, wie Sie Python auf Ihrem System installieren können.

Wenn Sie Python einmal auf der von Ihnen genutzten Plattform installiert haben, können Sie sich den Grundlagen zuwenden und sich schrittweise voranarbeiten. Sobald Sie die Beispiele in diesem Buch durchgearbeitet haben, können Sie mit Python einfache Programme schreiben und beispielsweise E-Mails versenden. Nein, dann sind Sie noch kein Experte, können aber Python so einsetzen, dass Sie den Anforderungen im Arbeitsumfeld gewachsen sind. Damit Sie die in diesem Buch vorgestellten Konzepte leichter aufnehmen können, werden die folgenden Formatierungen verwendet:

Webadressen, Programmcode und Texte, die Sie wie im Buch angegeben eintippen sollen, sind in

monofont

-Schrift gesetzt. Wenn Sie eine digitale Version dieses Buches auf einem Gerät mit Internetzugang lesen, können Sie auf Webadressen klicken, um zu der entsprechenden Website zu gelangen, zum Beispiel diese hier:

http://www.wiley-vch.de/dummies

.

Kursiv gesetzte Wörter in einem einzugebenden Text müssen durch etwas ersetzt werden, das für Ihren speziellen Fall funktioniert. Wenn Sie zum Beispiel lesen »Geben Sie

IhrName

ein und drücken Sie die Eingabetaste«, müssen Sie

IhrName

durch Ihren eigentlichen Namen ersetzen.

Menüpunkte oder Buttons, auf die Sie klicken beziehungsweise die Sie auswählen sollen, zum Beispiel

SPEICHERN

,

OK

oder

ABBRECHEN

, werden in Kapitälchen geschrieben. Befehlssequenzen werden folgendermaßen getrennt:

DATEI|DATEI NEU

. In diesem Fall müssen Sie zuerst das Dateimenü öffnen und dann den Eintrag

DATEI NEU

in diesem Menü auswählen. Als Ergebnis sehen Sie dann die neu erzeugte Datei.

Törichte Annahmen über den Leser

Es ist für Sie sicher schwer zu glauben, dass ich schon etwas über Sie zu wissen glaube – ich habe Sie schließlich noch nie im Leben gesehen! Obwohl einige der Annahmen tatsächlich töricht sind, habe ich als Basis für das Buch folgende Annahmen über Sie getroffen:

Es ist wichtig, dass Sie sich mit der Plattform auskennen, auf der Sie arbeiten, da Ihnen dieses Buch in dieser Hinsicht leider wenig bis gar nichts bieten kann. (Kapitel 2 enthält allerdings Anleitungen zur Installation von Python auf verschiedenen Systemen. Kapitel 4 beschreibt, wie Sie Anaconda und damit auch Jupyter Notebook – die integrierte Entwicklungsumgebung (IDE) für dieses Buch – installieren können.) Um Ihnen in diesem Buch möglichst viele Informationen über Python liefern zu können, befasst es sich nicht mit plattformspezifischen Problemen. Sie müssen also im Grunde genommen bereits vor dem Lesen dieses Buches wissen, wie Sie Anwendungen installieren und nutzen und ganz allgemein mit dem von Ihnen verwendeten System arbeiten können.

Dieses Buch nimmt ebenfalls an, dass Sie Informationen im Internet zu finden wissen. Überall im Buch verstreut finden Sie zahlreiche Verweise auf Online-Material, das Sie beim Lernen von Python unterstützen soll. Diese Quellen können natürlich nur dann nützlich sein, wenn Sie sie tatsächlich finden und nutzen können.

Symbole in diesem Buch

Beim Lesen dieses Buches sehen Sie immer wieder Symbole an den Seitenrändern, die auf interessante Informationen hinweisen. Dieser Abschnitt beschreibt kurz alle in diesem Buch verwendeten Symbole.

Tipps sind etwas Feines, da sie Ihnen dabei helfen, Zeit zu sparen oder eine Aufgabe ohne viel Zusatzaufwand zu erledigen. Die Tipps in diesem Buch sind Zeitsparmaßnahmen oder Hinweise auf andere Quellen, die Sie sich anschauen können, um das Maximum aus Python herauszuholen.

Ich möchte wirklich nicht wie ein Elternteil mit erhobenem Zeigefinger oder wie ein Paranoider klingen, aber Sie sollten alles, was mit einem Warnsymbol versehen ist, vermeiden. Andernfalls könnte es Ihnen zum Beispiel passieren, dass Ihr Programm lediglich die Benutzer verwirrt, die sich dann weigern werden, damit zu arbeiten.

Immer wenn Sie dieses Symbol sehen, werden Sie einen Tipp oder eine Vorgehensweise für Fortgeschrittene finden. Vielleicht werden Ihnen diese Leckerbissen nützlicher Informationen langweilig vorkommen. Aber sie könnten auch die Lösung enthalten, nach der Sie gerade suchen, um ein Programm zum Laufen zu bringen. Sie können diese Informationsschnipsel überspringen, wann immer Sie mögen.

Auch wenn Sie sonst nichts von einem Kapitel oder einem Abschnitt behalten, sollten Sie sich die Informationen, die mit diesem Symbol markiert wurden, merken. Dieser Text beschreibt normalerweise einen wesentlichen Prozess oder enthält Informationen, die Sie kennen sollten, wenn Sie erfolgreich Python-Programme schreiben wollen.

Falls die Listings im eBook-Display nicht gut lesbar sind oder nicht korrekt dargestellt werden, empfehlen wir Ihnen, sich die Beispieldateien von der Webseite des Buches herunterzuladen: www.wiley-vch.de/ISBN9783527714902

Über das Buch hinaus

Mal ehrlich – wer möchte schon die ganzen Quelltexte aus diesem Buch abtippen? Die meisten Leser verbringen ihre Zeit lieber mit dem Durcharbeiten der Beispiele als mit dem Abtippen des Codes. Glücklicherweise steht dieser zum Download bereit, sodass Sie einfach nur das Buch lesen müssen, um etwas über Programmiertechniken für Python zu lernen. Zu jedem Beispiel im Buch ist auch genau angegeben, welche Beispieldatei Sie benutzen können. Sie finden diese Dateien unter www.wiley-vch.de/ISBN9783527714902.

Wie geht es weiter?

Nun wird es endlich Zeit, dass Ihr Programmierabenteuer mit Python beginnt! Als absoluter Programmieranfänger sollten Sie mit Kapitel 1 beginnen und das Buch in dem Tempo durcharbeiten, in dem Sie selbst möglichst viele Informationen aufnehmen können.

Wenn Sie ein Anfänger sind, die Zeit drängt und Sie möglichst schnell mit Python anfangen wollen, können Sie auch direkt zu Kapitel 2 blättern. Sie sollten sich dabei aber bewusst sein, dass manche Kapitel weiter hinten im Buch Sie möglicherweise etwas verwirrt zurücklassen. Wenn Sie Python bereits installiert haben, können Sie auch direkt mit Kapitel 3 beginnen. Werfen Sie aber wenigstens einen kurzen Blick in Kapitel 2, damit Sie wissen, welche Voraussetzungen für die Beispiele im Buch gelten.

Leser, die mit Python bereits ein wenig in Berührung gekommen sind, können Zeit sparen, wenn sie direkt Kapitel 4 aufschlagen. Es ist wichtig, Anaconda zu installieren, um Jupyter Notebook einsetzen zu können, das als IDE für dieses Buch verwendet wird. Ansonsten können Sie den Quellcode zum Buch möglicherweise nicht so einfach nutzen. Da Anaconda kostenlos bereitgestellt wird, sind damit keine Kosten verbunden.

Falls Sie Jupyter Notebook bereits installiert haben und damit umzugehen wissen, können Sie direkt zu Kapitel 6 springen. Sollten Fragen auftreten, können Sie jederzeit zu vorherigen Kapiteln zurückkehren. Trotzdem ist es wichtig, dass Sie verstanden haben, wie ein Beispiel funktioniert, bevor Sie sich dem nächsten zuwenden. Mit jedem Beispiel lernen Sie etwas Neues und Sie könnten Wesentliches verpassen, wenn Sie zu viele Informationen überspringen.

Teil I

Erste Schritte mit Python

IN DIESEM TEIL …

Kommunizieren Sie mit Ihrem Computer.Installieren Sie Python unter Linux, Mac OS X oder Windows.Nutzen Sie die zusammen mit Python bereitgestellten Tools.Installieren und nutzen Sie Anaconda zum Schreiben Ihrer ersten Anwendung.Nutzen Sie Anaconda, um nützliche Aufgaben durchzuführen.

Kapitel 1

Die Kommunikation mit Ihrem Computer

IN DIESEM KAPITEL

Mit Ihrem Computer kommunizieren

Programme erstellen, um mit Ihrem Computer zu sprechen

Programme verstehen und lernen, sie zu erstellen

Überlegen, warum Sie Python nutzen wollen

Wenn es darum ging, mit einem Computer zu sprechen, handelte es sich vor gar nicht allzu langer Zeit regelmäßig noch um Drehbücher zu Science-Fiction-Filmen. Die Besatzung der Enterprise in Star Trek hat zum Beispiel regelmäßig mit ihrem Computer gesprochen. Und tatsächlich wurden sie von dem nicht nur verstanden, sondern sie erhielten vom Computer meist auch eine Antwort. Seit der Verbreitung von Apples Siri (www.apple.com/de/ios/siri), Amazons Echo (https://www.amazon.com/dp/B00X4WHP5E/) und anderer interaktiver Software sind derartige Gespräche heute allerdings durchaus möglich.

Den Computer nach Informationen zu fragen, ist eine Sache, ihn mit Befehlen zu füttern, eine andere. In diesem Kapitel wird diskutiert, warum Sie Ihrem Computer überhaupt etwas befehlen wollen und was Sie davon haben. Sie werden auch feststellen, dass für diese spezielle Kommunikation besondere Sprachen benötigt werden und warum Sie für derartige Aufgaben Python benutzen sollten. Das wichtigste Fazit, das Sie aus diesem Kapitel ziehen können, besteht darin, dass Programmieren einfach nur eine Art der Kommunikation ist, die anderen Formen der Kommunikation ähnelt, die Sie mit Ihrem Computer bereits pflegen.

Warum wollen Sie sich mit Ihrem Computer unterhalten?

Sich mit Maschinen zu unterhalten, scheint zunächst einmal ziemlich langweilig. Das ist aber nötig, da Computer ja keine Gedanken lesen können, auch wenn sie auch das vielleicht noch lernen können. Und selbst, wenn Computer tatsächlich Gedanken lesen könnten, würden Sie ja weiterhin mit Ihnen kommunizieren. Ohne den Austausch von Daten zwischen den Maschinen und Ihnen passiert erst einmal gar nichts. Aktivitäten wie

das Lesen Ihrer E-Mails

das Schreiben von Urlaubsberichten

die Suche nach dem weltbesten Geschenk

sind alles Beispiele für Kommunikation zwischen Computern und Ihnen. Die grundlegende Idee besteht darin, dass nur dann Ergebnisse produziert werden können, wenn kommuniziert wird. Und das trifft natürlich auch auf jedwede Kommunikation zu, die zwischen Ihrem Computer und anderen Rechnern oder Menschen stattfindet.

Solange Sie nicht genauer darüber nachdenken, ist die Kommunikation für Sie meist transparent. Wenn Sie beispielsweise online einen Chatroom betreten, entsteht dabei der Eindruck, dass Sie direkt mit anderen Personen kommunizieren. Tatsächlich kommunizieren Sie aber mit Ihrem Computer, der über den Chatroom mit dem Computer Ihres Kommunikationspartners »spricht«, der wiederum mit seinem Besitzer kommuniziert. Abbildung 1.1 soll die Geschehnisse im Hintergrund verdeutlichen.

Abbildung 1.1: Die Kommunikation mit Ihrem Computer bleibt transparent, solange Sie nicht anfangen, genauer darüber nachdenken.

Betrachten Sie die Wolke in der Mitte von Abbildung 1.1. Sie könnte alles Mögliche enthalten. Wie Sie aber natürlich wissen, enthält sie auf jeden Fall andere Computer, die andere Anwendungen ausführen. Durch diese Computer können Sie und Ihre Freunde miteinander chatten. Und nun denken Sie einmal daran, wie einfach der gesamte Vorgang bei der Verwendung eines Chatprogramms ist. Trotz der komplexen Prozesse im Hintergrund kommt es Ihnen doch so vor, als würden Sie sich einfach nur mit Freunden unterhalten.

Anwendungen als eine Art von Kommunikation

Die Kommunikation mit dem Computer erfolgt durch Anwendungen. Sie nutzen zum Beispiel Anwendungen, um Ihre E-Mails zu beantworten, andere für Ihre Einkäufe und wieder andere zum Erstellen von Präsentationen. Anwendungen (Programme) die häufig nur App genannt werden, stellen eine Methode dar, um Computern menschliche Ideen so zu präsentieren, dass er sie verstehen kann. Außerdem werden durch Anwendungen die Werkzeuge bestimmt, mit denen die Daten spezifisch für die Kommunikation aufbereitet werden. Daten, die Präsentationsinhalte repräsentieren, unterscheiden sich von den Daten, die beim Einkauf von Geschenken für Ihre Mutter benötigt werden. Die Art und Weise der Betrachtung, Verwendung und Interpretation der Daten ist für die verschiedenen Aufgaben unterschiedlich. Also müssen Sie auch verschiedene Anwendungen (oder Teilanwendungen) benutzen, wenn Sie Daten derart verarbeiten wollen, dass sie von Computern und Ihnen selbst verstanden werden.

Sie können quasi für jede heute vorstellbare Aufgabenstellungen Anwendungen schreiben. Tatsächlich können Sie auf Anwendungen zugreifen, von denen Sie nicht einmal wissen, wofür sie überhaupt benötigt werden. Programmierer erstellen seit Jahren Abermillionen Anwendungen. Daher ist es vielleicht zunächst kaum nachvollziehbar, warum Sie selbst neue Anwendungen schreiben sollten, um mit Ihren Computern zu kommunizieren. Letztlich sollten Sie die Antwort finden, wenn Sie darüber nachdenken, welche Daten Ihnen vorliegen und wie diese interaktiv verarbeitet werden sollen. Einige Daten werden vielleicht zu selten benötigt, als dass es Programmierern bisher in den Sinn gekommen wäre, dafür Anwendungen zu schreiben. Vielleicht liegen die Daten auch in einer Form vor, die aktuell von keiner Anwendung unterstützt wird. Also können Sie Ihrem Computer die Daten (ohne jeweils übermäßigen Aufwand) kaum sinnvoll präsentieren, ohne eigene Anwendungen dafür zu schreiben.

In den folgenden Abschnitten werden Anwendungen unter dem Gesichtspunkt beschrieben, dass jeweils ganz spezifische Daten auf ganz spezielle Art und Weise weiterverarbeitet werden müssen. Zum Beispiel könnten Sie auf eine Videodatenbank zugreifen, ohne dabei sinnvoll mit den Daten arbeiten zu können. Sowohl die Daten als auch Ihre Zugriffsanforderungen sind sehr speziell. Deshalb reift in Ihnen der Gedanke heran, eine eigene Anwendung zu schreiben, die sowohl den Daten als auch Ihren Anforderungen gerecht wird.

Alltägliche Arbeitsabläufe

Bei Arbeitsabläufen oder Prozessen handelt es sich einfach um einen Satz von Schritten, die Sie bei der Ausführung einer Aufgabe befolgen. Um sich beispielsweise einen Toast zu machen, könnten Sie diese Schritte durchführen:

Sie holen Brot und Butter aus dem Kühlschrank.

Sie öffnen die Brottüte und nehmen zwei Scheiben Toast heraus.

Sie stecken das Kabel des Toasters in die Steckdose.

Sie geben je eine Scheibe Brot in einen Schlitz.

Sie drücken den Toasterhebel herunter, um den Toastvorgang zu starten.

Sie warten, bis der Toastvorgang abgeschlossen ist.

Sie nehmen den Toast aus dem Toaster.

Sie legen die Toastscheiben auf einen Teller.

Sie bestreichen den Toast mit Butter.

Vielleicht gehen Sie beim Toasten auch anders als hier vorgestellt vor, aber es ist recht unwahrscheinlich, dass Sie den Toast vor dem Toasten mit Butter bestreichen. Natürlich müssen Sie den Toast erst einmal aus der Verpackung holen, bevor Sie ihn toasten (den Toast samt Verpackung und allem Drum und Dran in den Toaster zu stecken, könnte zu unerwünschten Ergebnissen führen …). Die meisten Leute denken gar nicht über das Toastmachen nach. Trotzdem verwenden sie derartige Arbeitsabläufe, ohne darüber nachzudenken.

Ohne Ablaufplan können Computer keine Aufgaben ausführen. Sie müssen dem Computer sagen, welche Schritte er in welcher Reihenfolge ausführen soll, und Sie müssen ihn auf alle möglicherweise auftretenden Ausnahmen vorbereiten, die zu Fehlern führen können. Alle diese Angaben (und noch mehr) werden in Anwendungen beschrieben. Kurz gefasst sind Anwendungen einfach niedergeschriebene Arbeitsabläufe, die Sie verwenden, um Computern zu vermitteln, was sie wann und wie machen sollen. Da Sie bereits Ihr Leben lang Arbeitsabläufen folgen, müssen Sie dieses Wissen nur noch auf Dinge übertragen, die Computer für bestimmte Aufgaben wissen müssen.

Arbeitsabläufe aufschreiben

Als ich noch in der Grundschule war, erhielten wir von unserer Lehrerin die Aufgabe, etwas über das Toastmachen zu schreiben. Nachdem wir alle unsere Aufsätze abgegeben hatten, holte sie einen Toaster und ein paar Brote hervor. Jeder Aufsatz wurde dann vorgelesen und demonstriert. Zwar funktionierte keiner der von uns beschriebenen Abläufe wie vorgesehen, die produzierten Ergebnisse waren aber sehr lustig. Ich selbst hatte vergessen, die Lehrerin zu bitten, die Verpackung zu entfernen. Also versuchte sie pflichtbewusst, das Brot zusammen mit seiner Verpackung in den Toaster zu stecken. Diese Lektion ist bei mir hängen geblieben. Prozeduren aufzuschreiben, kann ziemlich schwer sein, da wir zwar genau wissen, was wir machen wollen, aber oft Schritte auslassen – wir nehmen einfach an, dass die andere Person auch genau weiß, was wir machen wollen.

Bei vielen alltäglichen Erfahrungen im Leben geht es einfach nur um die Kenntnis der erforderlichen Arbeitsabläufe. Denken Sie nur an die Checklisten, die von Piloten vor dem Start verwendet werden. Ohne standardisierte Abläufe könnte das Flugzeug abstürzen. Das Aufschreiben von Arbeitsabläufen kostet zwar Zeit, ist aber machbar. Vielleicht brauchen Sie mehrere Versuche, bis Sie Ihre Arbeitsabläufe voll funktionsfähig niedergeschrieben haben, wahrscheinlich werden Sie die Prozedur letztlich aber erstellen können. Es reicht aber nicht, den Arbeitsablauf nur aufzuschreiben, Sie müssen ihn auch von jemandem testen lassen, der mit der zu erledigenden Aufgabe nicht vertraut ist. Arbeitet man mit Computern, sind diese natürlich die perfekten Testobjekte.

Anwendungen als gewöhnliche Arbeitsabläufe verstehen

Computer verhalten sich genauso wie die Grundschullehrerin im Beispiel des letzten Abschnitts. Wenn Sie eine Anwendung schreiben, schreiben Sie einen Prozess auf, der eine vom Computer auszuführende Schrittfolge definiert, um irgendeine von Ihnen vorgegebene Aufgabe zu erfüllen. Lassen Sie einen Schritt aus, werden die Ergebnisse nicht wie erwartet ausfallen. Der Computer versteht nicht, was Sie meinen, oder Sie selbst dachten, er würde irgendwas automatisch machen. Computer wissen nur, dass Sie ihnen einen Prozess vorgegeben haben und dass sie diesen ausführen sollen.

Computer nehmen alles wörtlich

Menschen gewöhnen sich an die Arbeitsabläufe, die Sie erstellen. Sie kompensieren automatisch Mängel in den Abläufen oder notieren sich jene Dinge, die Sie vergessen haben. Anders gesagt: Menschen kompensieren Probleme mit den von Ihnen erstellten Prozessen.

Wenn Sie mit dem Schreiben von Computerprogrammen beginnen, werden Sie wahrscheinlich erst einmal frustriert sein, weil Computer Aufgaben zwar äußerst präzise ausführen, dabei aber Ihre Anweisungen wörtlich nehmen. Sagen Sie dem Computer beispielsweise, dass ein bestimmter Wert gleich 5 sein soll, wird der Computer nach einem Wert suchen, der exakt 5 ist. Menschen könnten den Wert 4,9 sehen und dabei wissen, dass dieser noch gut genug ist. Computer sind anderer Ansicht. Computer sehen den Wert 4,9 und entscheiden, dass dieser nicht genau gleich 5 ist. Kurz gefasst sind Computer unflexibel, handeln wenig intuitiv und sind einfallslos. Wenn Sie einen Arbeitsablauf für einen Computer definieren, wird dieser jedes Mal präzise das tun, was Sie von ihm verlangen. Dabei wird er den Prozess nie eigenständig ändern und auch nie entscheiden, dass ihm eigentlich etwas ganz anderes aufgetragen wurde.

Was sind Anwendungen eigentlich?

Wie bereits erwähnt, können Anwendungen menschliche Ideen so ausdrücken, dass sie von Computern verstanden werden. Um dieses Ziel zu erreichen, benötigen Anwendungen einen oder mehrere Arbeitsabläufe, die dem Computer mitteilen, wie die Aufgaben zur Verarbeitung und Anzeige von Daten auszuführen sind. Sie sehen am Bildschirm zum Beispiel Text in Ihrem Textverarbeitungsprogramm. Damit Sie diese Daten sehen können, benötigt der Computer aber Vorgaben, wie er Daten von Festplatten lesen, sie in eine für Menschen verständliche Form bringen und schließlich am Bildschirm anzeigen kann. In den folgenden Abschnitten werden die Eigenschaften von Anwendungen detaillierter beschrieben.

Computer besitzen ihre eigene Sprache

Menschliche Sprachen sind komplex und schwer zu verstehen. Selbst Anwendungen wie Alexa oder Siri sind in ihren Möglichkeiten noch äußerst beschränkt, wenn es darum geht, das Gesagte zu verstehen. Mit der Zeit haben Computer zwar »gelernt«, menschliche Spracheingaben zu verarbeiten und bestimmte gesprochene Wörter als Befehle zu interpretieren. Computer verstehen die menschliche Sprache im Wesentlichen aber immer noch nicht wirklich. Und bei Dialekten ist schnell Schluss. (Das »Gennsefleisch« eines Sachsen wird deshalb von Nichtsachsen und erst recht von Computern wahrscheinlich kaum als »Können Sie vielleicht? verstanden werden.) Die Schwierigkeit der menschlichen Sprache lässt sich deshalb auch gut am Beispiel der Arbeit von Anwälten darstellen, die eine gewisse eigene Sprache pflegen. Wenn Sie sich Dokumente im Juristendeutsch anschauen, lesen sich diese oft wie das reinste Kauderwelsch. Ziel dieser Sprache ist es jedoch, keinerlei Spielraum für Interpretationen zu lassen. Anwälte haben schaffen es trotzdem nur selten, dieses Ziel vollständig zu erreichen, da die menschliche Sprache einfach zu ungenau ist und Juristen selbst häufig wieder Dinge voraussetzen, die für Normalsterbliche ganz und gar nicht selbstverständlich sind.

Wenn man sich nun ansieht, was Sie aus den vorigen Abschnitten dieses Kapitels wissen, könnten Computer sich niemals auf die menschliche Sprache verlassen, um die von Ihnen definierte Prozesse zu verstehen. Computer nehmen alles wörtlich und würden völlig unvorhersehbare Ergebnisse produzieren, wenn Anwendungen in menschlicher Sprache geschrieben würden. Darum müssen Menschen für die Kommunikation mit Computern spezielle Programmiersprachen verwenden. Mit diesen können Sie Prozesse präzise definieren, die dann auch für Computer und Menschen gleichermaßen verständlich sind.

Computer sprechen eigentlich gar keine Sprache. Sie verwenden Binärcodes, um Schalter intern umzulegen und mathematische Berechnungen durchzuführen. Computer verstehen nicht einmal Buchstaben, sondern nur Zahlen. Spezielle Anwendungen machen aus der computerspezifischen Sprache, die Sie zum Definieren von Arbeitsabläufen benötigen, Binärcodes