September 2019

Ausgabe 34, Nummer 9

[Programmiererpraxis]

Einführung in Python

Von Ted Neward | September 2019

Ted NewardPython hat sich in den letzten Jahren zu einer der beliebtesten Programmiersprachen entwickelt, was sich in vielen Umfragen bestätigt. Zwar werden künftig auch weiterhin andere Sprachen verwendet, aber Python nimmt im Zusammenhang mit Data Science bzw. KI und dem maschinellen Lernen eine wichtige Rolle ein, was es zu einer interessanten Programmiersprache macht.

Die Kombination aus einer relativ einfachen Syntax und einem einfachen Programmiermodell sowie erweiterbaren Modulen, mit denen eine Verbindung mit dem zugrunde liegenden Betriebssystem hergestellt wird, macht Python zu einer unkomplizierten Programmiersprache und gibt allen Grund für diese Kolumne. Im Laufe dieser Reihe stelle ich unter anderem die Syntax, die Semantik und eine Reihe von interessanten Bibliotheken im Python-Ökosystem vor.

Einleitung

Zuerst aber eine kurze Anmerkung: Wie in jeder anderen Kolumne von mir weise ich Sie darauf hin, dass ich Sie nicht davon überzeugen möchte, Ihren derzeit vorhandenen C#-Code (oder Visual Basic-Code) durch Python zu ersetzen. Python ist wie viele andere auch ein nützliches Tool, das Sie dann verwenden können, wenn es Ihnen angemessen erscheint. Es gibt aber nichts, das Sie nicht auch mit C# tun können. Der einzige Unterschied liegt darin, dass Sie diese Sprachen unterschiedlich verwenden.

Außerdem würde ich gern ein gängiges Missverständnis aufklären: Obwohl die Python-Community darauf beharrt, für die Bezeichnungen Ihrer Pakete und Bibliotheken Anspielungen auf Schlangen und Reptilien zu verwenden, ist die Sprache in Wirklichkeit nicht nach der großen Würgeschlange benannt, die in den Dschungeln dieser Welt zu Hause ist. Tatsächlich hat die Bezeichnung einen anderen Ursprung: Monty Python. Die Comedygruppe aus Großbritannien erlangte im Laufe der letzten Jahrzehnte beispielsweise durch Serien wie „Monty Python‘s Flying Circus“ Kultstatus. Diese Python-Kultur findet ihre absolute Höhe in der Verwendung von Zitaten und Beispielen aus den Filmen in Beispielcode. Wahre Pythonistas lassen keine Möglichkeit aus, derartige Wortspielereien bei ihren Eingaben einzubauen. Daher finden sich auf der ganzen Website derartige Zitate.

Seien Sie also gewarnt.

Erste Schritte

Die ersten Schritte mit Python sind aus zwei Gründen viel einfacher als zunächst gedacht. Erstens: Eine Python-Version ist standardmäßig für die Installation mit dem Visual Studio-Installer verfügbar. Diese gepackte Version besteht aus Python und Umgebungsverwaltungstools namens „Anaconda“. Im Folgenden erfahren Sie, was dieser Name bedeutet und was er impliziert. Zweitens: Python ist jetzt dank des Windows-Subsystems für Linux (WSL) und mithilfe des Paket-Managers Ihrer Wahl nur einen einfachen Bash-Shell-Befehl in der Befehlszeile entfernt. Wenn Sie beispielsweise Ubuntu in der WSL-Umgebung installiert haben, erreichen Sie Python ganz einfach, indem Sie eine Ubuntu-Bash-Shell-Aufforderung öffnen und „sudo apt-get install python3“ eingeben. Wenn Sie Windows 10 ausführen, ist Python außerdem seit Mai im Windows Store verfügbar. Weitere Informationen finden Sie unter bit.ly/2JMxC3A.

Natürlich sind auch viele andere Optionen verfügbar, wenn Ihnen diese nicht gefallen. Für diejenigen, die eine Python-Installation direkt von der Quelle bevorzugen, steht auf der Python-Website ein Windows-basiertes Installationsprogramm zur Verfügung. Für den Fall, dass Sie wirklich nur die Quelle möchten: Python ist (wie die meisten anderen Programmiersprachen heutzutage) ein auf GitHub gehostetes Open-Source-Projekt, mit dem von Grund auf neu erstellt werden kann. Obwohl einer dieser Ansätze vor einem Jahrzehnt möglicherweise noch bevorzugt verwendet wurde, zeigt der relativ aktuelle Erfolg der Bündelung von Paket-Managern als Kernteil der Programmiersprache (beginnend mit Ruby und gems, danach Migration zu Node und npm bzw. Java und Maven, .NET und NuGet usw.), dass bei einer modernen Python-Installation auch ein Paketverwaltungstool vorhanden sein muss, das in Zusammenhang mit Python „pip“ genannt wird. Da das Interesse an Python weiterhin zunimmt, sind auch andere Bereitstellungssysteme vorhanden (einschließlich der erwähnten Anaconda-Umgebungsverwaltungstools und des Conda-Dienstprogramms). Sie können sich bedenkenlos für einen der beiden Ansätzen entscheiden, da Sie mit beiden das gleiche Ergebnis erzielen können. Wenn Sie die Anaconda-Installation verwenden, die in Visual Studio enthalten ist, nutzen Sie größtenteils Conda. Wenn Sie wiederum das Installationsprogramm von der Python-Website auswählen, verwenden Sie pip.

Ein weiterer zu beachtender Faktor ist, dass die Programmiersprache in zwei Hauptversionen verfügbar ist: Python ist sowohl in der 64-Bit- als auch in der 32-Bit-Version verfügbar. Die Unterschiede sind in diesem Fall sehr offensichtlich. Der Übergang von Python 2 zu Python 3 ist ziemlich knifflig. Aus Gründen, die für uns größtenteils unwichtig sind, hat Python-Entwickler Guido von Rossum entschieden, einige weitreichende Änderungen an der Sprache vorzunehmen und daher die Versionsnummer bei deren Implementierung offiziell erhöht. Im Allgemeinen wurde erwartet, dass der Übergang recht schnell geht, was allerdings nicht der Fall ist. Besser gesagt: Dieser Prozess dauert noch an. Ich verwende Python 3 für diese Reihe, da voraussichtlich für alle neuen Python-Projekte Python 3 verwendet wird. Möglicherweise stoßen Sie aber auf ein Paket oder eine Bibliothek, für das bzw. die Python 2 erforderlich ist.

Probieren Sie Python direkt nach der Installation aus. Wenn Sie Anaconda installiert haben, öffnen Sie das installierte Element des Startmenüs mit der Bezeichnung „Anaconda Prompt“ (Visual Studio 2019 installiert dies als „Python Prompt“). Dadurch wird eine Eingabeaufforderung angezeigt, in der die Umgebung für Anaconda Python festgelegt ist. Diese Aufforderung sieht etwas seltsam aus, da vor der normalen verzeichnisbasierten Aufforderung „(base)“ steht (auf meinem Computer: „C:\Benutzer\Ted“). Das liegt daran, dass Anaconda verschiedene Umgebungen für Sie verwaltet. Darauf werde ich aber in einem späteren Abschnitt eingehen. Geben Sie vorerst einfach „python“ ein, um die Python-REPL (Read-Evaluate-Print-Loop) zu öffnen. Diese interaktive Umgebung gibt nach der Ausgabe eines Versionsbanners die Eingabeaufforderung „>>>“ zurück.

An diesem Punkt ist es an der Zeit, die Götter der Informatik zu würdigen, indem Sie die übliche Begrüßung eingeben:

print("Hello, Python world")

Wenn Sie diese in die REPL eingeben, wird sofort die Begrüßung ausgegeben und eine weitere Eingabeaufforderung „>>>“ angezeigt. Wenn Sie möchten, können Sie sie in eine Datei einfügen („hello.py“) und über die Anaconda-Eingabeaufforderung („python hello.py“) ausführen. In jedem Fall haben Sie Ihre Aufgabe erledigt und können Ihren Lebenslauf um die Angabe „Python-Programmierer“ erweitern.

Wenn die Nachricht (beispielsweise zur späteren Wiederverwendung) in einer Variablen aufgezeichnet werden soll, schreiben Sie dies wie folgt:

message = "Hello again, "
message += "Python world"
print(message)

Beachten Sie, dass die lokale Variable („message“) vor der ersten Verwendung nicht deklariert werden muss und es kein Schlüsselwort wie „var“ (oder „let“ bzw. „const“) zum Deklarieren in JavaScript gibt. Python unterstützt natürlich Zeichenfolgen, boolesche Werte, numerische Werte, Listen, Tupel, Sets (Listen, die Duplikate nicht zulassen) und Wörterbücher (Liste mit Tupeln oder, falls bevorzugt, Schlüssel-Wert-Paaren) als integrierte Typen. In zukünftigen Beiträgen erfahren Sie, wie Sie benutzerdefinierte Objekttypen erstellen und was jeder einzelne dieser einfachen Typen genauer bedeutet. Variablen sind nicht vollständig typisiert. Das bedeutet, dass der lokalen Variable jederzeit eine beliebige Art von Wert zugewiesen werden kann, zum Beispiel:

# By the way, this is a comment
message = "Hello again, "
message += "Python world"
print(message)
message = 5
print(message)

Daher sollte jedoch Folgendes beachtet werden: Wenn eine Variable zum ersten Mal verwendet wird, muss ihr ein Wert zugewiesen sein. Andernfalls denkt Python, dass Sie versuchen, auf eine zuvor definierte Variable zu verweisen. Sie können jedoch immer Zeichenfolgen mit dem Wert 0 (null) oder NULL (oder einem anderen entsprechenden Wert) als Standardwert zuweisen.

Letzter wichtiger Hinweis: Wie die erste Zeile des Beispiels impliziert, ist das #-Symbol (auch als Rautezeichen oder Doppelkreuz bekannt) das Kommentarzeichen für das Zeilenende in Python. Anders als bei vielen anderen Programmiersprachen gibt es bei Python jedoch kein mehrzeiliges Kommentarsymbol. Das bedeutet, dass das Kommentieren langer Codeabschnitte schwieriger ist. Das passt jedoch zum allgemeinen Motto von Python: „Es gibt nur eine Möglichkeit.“ In diesem Fall bedeutet das, dass es nur eine Möglichkeit gibt, Kommentare zu setzen.

Ausführen von Python

Sie können diesen Code auf verschiedene Weise ausführen.

Wenn sich Python auf dem Pfad befindet, können Skripts über eine Windows-Befehlszeile ausgeführt werden, indem einfach der Name der Python-Datei in den Interpreter eingegeben wird (Beispiel: „python hello.py“). Das ist wahrscheinlich einer der Hauptgründe, warum Sie Python zum Schreiben von Anwendungen verwenden, insbesondere in den Fällen, in denen Sie das Tool zum Erstellen von Diagrammen oder Ausführen von Webservern verwenden.

Eine interessante Variation diesbezüglich besteht für Windows darin, dass sich Python selbst bei der Windows-Registrierung registriert und die Dateierweiterung „.py“ anfordert, wenn Sie die auf Windows basierende Installationsprogramme verwenden, um Python (im Gegensatz zum Aufbau aus der Quelle) auf Ihrem Computer zu installieren. Wenn in einer Windows-Eingabeaufforderung „.py“ an die Umgebungsvariable „PATHEXT“ angefügt wird, können Sie außerdem Python-Skripts wie direkt ausführbare Dateien ausführen (diese Umgebungsvariable enthält die Erweiterungen aller direkt ausführbaren Dateien wie COM, EXE, BAT und CMD). Dieses spezielle Verhalten ist spezifisch für Windows und nicht auf Python beschränkt. Jede beliebige Dateierweiterung kann in der PATHEXT-Umgebungsvariable registriert werden und eine direkt ausführbare Datei sein, solange die Registrierung der Anwendung-zu-Datei-Erweiterung in der Registrierung eingerichtet wird.

Auf einem UNIX-System können Sie am Anfang des Skripts jedoch immer die Zeile „she-bang“ einrichten. Für diejenigen, die mit diesem Aspekt des UNIX-Verhaltens nicht vertraut sind: Wenn ein Skript (z. B. durch die Eingabe „hello.py“ in der Befehlszeile) „direkt ausgeführt“ wird, untersucht UNIX die erste Zeile des Skripts. Wenn dann ein Element wie „#!/usr/bin/env python3“ vorkommt, geht das Betriebssystem davon aus, dass es sich um eine Befehlszeile handelt, die ausgeführt werden muss, um dieses bestimmte Skript auszuführen.

Zusammenfassung

Dies ist offensichtlich nur der erste Artikel zu Python. Natürlich gibt es viele weitere Themen, die behandelt werden müssen, bevor Sie die Funktionsweise von Python wirklich verstehen und wissen, wie Sie diese Programmiersprache verwenden. Im nächsten Abschnitt werden die Flusssteuerungskonstruktionen von Python behandelt, die mit einer weiteren interessanten Facette von Python zu tun haben: viel Leerraum. Viel Spaß beim Programmieren!


Ted Newardist ein in Seattle ansässiger Berater, Referent und Mentor für zahlreiche Technologien. Er hat unzählige Artikel geschrieben und als Autor und Mitautor ein Dutzend Bücher verfasst. Er hält weltweit Vorträge. Sie erreichen ihn unter ted@tedneward.com, oder lesen Sie seinen Blog unter blogs.tedneward.com.

Unser Dank gilt dem folgenden technischen Experten für die Durchsicht dieses Artikels: Harry Pierson


Diesen Artikel im MSDN Magazine-Forum diskutieren