17,99 €
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:
Seitenzahl: 584
Veröffentlichungsjahr: 2018
Python programmieren lernen für Dummies
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
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/.
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
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
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.
Cover
Inhaltsverzeichnis
Begin Reading
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
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.
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.
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.
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
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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