Python Tutorial, Teil 1

Py – Basiswissen und Einstieg

| Autor / Redakteur: Thomas Drilling / Stephan Augsten

Python ist recht einfach zu erlernen und damit ein guter Einstieg ins Programmieren.
Python ist recht einfach zu erlernen und damit ein guter Einstieg ins Programmieren. (Bild: Python.org)

Die Programmiersprache Python lässt sich leicht erlernen und bietet vielfältige Anwendungsmöglichkeiten. Python eignet sich somit für generellen Einstieg in die Welt der Software-Entwicklung und ist zudem universeller einsetzbar als Java oder JavaScript. Dieser und folgenden Teile unseres Python-Beginner-Tutorials bestätigen das.

Python ist eine universelle Open-Source-Programmiersprache und wurde im Jahr 1991 von Guido van Rossum erdacht. Python ist nicht nur für seine Einfachheit beliebt, sondern vor allem für die universelle Anwendbarkeit. Im Programmiersprachen-Ranking von Redmonk residiert Python seit langem stabil auf Platz drei; nach JavaScript und Java und noch vor PHP.

Selbst wenn man sich dem Zeitgeist gemäß auf das Entwickeln von Webprojekten fokussiert, helfen Frameworks wie Django, das Rad nicht immer neu erfinden zu müssen. Python eignet sich auch gut für Datenauswertungs-Anwendungen, Big Data und Data Science und kommt auch im High-Performance Computing zunehmend zum Einsatz. So ist beispielsweise das umfangreiche OpenStack-Ökosystem fast vollständig in Python geschrieben.

Das Schöne an Python ist, dass der Lern-Schwierigkeitsgrad relativ gering ist und Entwickler bereits Vieles umsetzen können, sobald sie nur über essentielle oder höchstens mittlere Python-Kenntnisse verfügen. Zudem besitzt Python eine große und rege Community sowie viele Online-Ressourcen für das Erlernen der Sprache

Mit der im Dezember 2008 veröffentlichten Version 3.0 wurde die Sprache komplett überarbeitet und von kleinen Unschönheiten und Designfehlern befreit, die man bei vorherigen Versionen aufgrund einer gewünschten Abwärtskompatibilität beibehalten hatte.

Grundlegende Konzepte

Python ist zunächst eine klassische imperative Programmiersprache (im Unterschied zu „deklarativ“), bringt aber noch einige weitere Programmierparadigmen mit. So kann man mit Python sowohl objektorientiert als auch funktional zu programmieren. Und noch eine Besonderheit: zwar bringt Python zahlreiche bekannte Sprachelemente verbreiteter Skriptsprachen mit, ist aber keine Skriptsprache, sondern eine interpretierte Programmiersprache.

So gibt es in Python wie bei Java oder C# einen Compiler, der aus dem Quelltext zunächst den Byte-Code generiert. Dieser wird dann in einer speziellen virtuellen Maschine, dem Python-Interpreter, ausgeführt. Somit sind Python-Programme genau wie Java-Programme plattformunabhängig, sodass jedes Python-Programm auf sämtlichen Betriebssystemen, die vom Python-Interpreter unterstützt werden, unverändert funktioniert.

Neben Interpreter und Compiler enthält der Lieferumfang von Python eine umfangreiche Standardbibliothek, die maßgeblich dafür verantwortlich ist, dann auch Anfänger in recht kurzer Zeit Programme für komplexe Aufgabenstellungen entwickeln können. So stellt die Standardbibliothek z. B. umfassende Möglichkeiten der Datenspeicherung oder Netzwerkkommunikation bereit.

Da Python als interpretierte Programmiersprache kaum Möglichkeiten zur maschinennahen Programmierung bietet, lassen sich bei Bedarf zeitkritische Erweiterungen mit Hilfe der Python-API z. B. in C implementieren.

Python installieren

Die jeweils aktuelle Python-Version kann man von der offiziellen Python-Website in Form einer Installationsdatei für das gewünschte Betriebssystem herunterladen und installieren. Meist ist es aber wohl komfortabler, eine Python-Distribution zu benutzen, die neben Python gleich die wichtigsten Tools und Erweiterungen mitbringt und die Möglichkeit zum Nachinstallieren von Modulen bietet.

Populäre Python-Distributionen sind z. B. Anaconda für Python 3.6 von der Firma Continuum Analytics oder das in Python geschriebene PyPy. Weitere Distributionen listet das Python-Wiki. Im Späteren Verlauf des Workshops werden wir eine Python-Entwicklungsumgebung in AWS z. B. mit Elastic Beanstalk bereitstellen.

Workflow

Ein Vorteil an Python ist neben der recht einfachen Syntax, dass man dank der zeilenweisen Abarbeitung sofort Ergebnisse sehen kann. Längerer Code wird in einer Datei gespeichert.
Ein Vorteil an Python ist neben der recht einfachen Syntax, dass man dank der zeilenweisen Abarbeitung sofort Ergebnisse sehen kann. Längerer Code wird in einer Datei gespeichert. (Bild: Drilling / Python)

Jedes Python-Programm besteht aus einer oder mehreren Programmdateien mit der Endung .py, die den Python-Quelltext enthalten. Hierbei handelt es sich im Prinzip um gewöhnliche Textdateien, die mit jedem gewöhnlichen Editor bearbeitet werden können. Optimal ist ein Editor mit Auszeichnungsmodus für Python-Code wie z. B. Notepad++.

Hat man eine Programm-Datei geschrieben, kann man sie ausführen. Verwendet man das Python-eigene „Integrated Development and Learning Environment“ (IDLE) kann dies im Menüpunkt „Run / Run Module“ erreicht werden. Bei Verwendung eines eigenen Editors muss der Nutzer an der Kommandozeile in das Verzeichnis der Programmdatei wechseln dann je nach verwendeten Betriebssystem eine Reihe von Kommandos ausführen.

Unter Windows etwa gibt der Nutzer in der Konsole (CMD) den Namen der Programmdatei ein und drück dann „Return“. Wahlweise funktioniert unter Windows auch ein Doppelklick auf die Datei im Konsolenfenster, allerdings schließt sich dadurch das Konsolenfenster und etwaige Ausgaben sind nicht sichtbar. Unter Linux und Mac wechseln Nutzer ebenfalls in das Verzeichnis der Programmdatei und startet den Python-Interpreter mit dem Befehl „python“, gefolgt von dem Namen der auszuführenden Programmdatei.

Da wir bis auf weiteres ohnehin nur Konsolen-Programme schreiben, sollte es zunächst ausreichen, einen Online-Python-Interpreter wie Repl zu verwenden. Bei Linux (und anderen Unix-ähnlichen Betriebssystemen) lassen sich Python-Programmdateien zudem mit Hilfe eines „Shebangs“ (oder Magic Line genannt) direkt ausführbar machen, indem man

#!/usr/bin/python

In die erste Zeile der Programmdatei schreibt. Das Betriebssystem (z. B. Linux) wird dann die Programmdatei immer mit dem Python-Interpreter ausführen. Bei Windows wird die Shebang-Zeile ignoriert.

Struktur eines Python-Programms

Python macht dem Entwickler recht genaue Vorgaben, wie der Quellcode zu strukturieren ist. Grundsätzlich besteht jedes Python-Programm aus einzelnen Anweisungen, die im einfachsten Fall genau eine Zeile im Quelltext einnehmen wie z. B.

print("Hello World")

Es gibt aber auch Anweisungsblöcke mit einem Anweisungskopf und einen Anweisungskörper, der dann mehrere Anweisungen enthält, wie z. B. …

y = 5

if y == 5:
   print("y ist gleich ",y)

   print("Dies ist der Text der zweiten Zeile")

…, wobei der Doppelpunkt oben kenntlich macht, dass ein Anweisungsblock folgt und das Ende des Anweisungsblocks durch die Einrückung erkannt wird. Dies ist ein bedeutender Unterschied zu fast allen anderen Programmiersprachen, in denen Blöcke dieser Art durch geschweifte Klammen oder Schlüsselwörter wie „Begin“ oder „End“ kenntlich gemacht werden.

Zur Einrückung des Codes sollte man allerdings ausschließlich Leerzeichen verwenden oder den verwendeten Editor so einstellen, dass er automatisch Tabs durch Leerzeichen ersetzt. Zwar könnte man auch Tabs im Quellcode verwenden, da aber Python intern jeder Tab durch acht Leerzeichen ersetzt, viele Editoren aber einer Tabulatorweite von vier Zeichen benutzen, kann dies zu schwer lokalisierbaren Fehlen führen.

Prinzipiell können Quellcodezeilen beliebig lang sein, auch wenn sich die meisten Programmierer auf 80 Zeichen beschränken, damit der Code auch auf Geräten mit fester Zeilenbreite lesbar ist. Auch innerhalb von Klammern dürfte man Quellcode theoretisch beliebig umbrechen, jedoch erzwingen die syntaktischen Regeln von Python an vielen anderen Stellen etwas Anderes. Allerdings ist es mit Hilfe der Backslash-Notation möglich, Quellcode an nahezu beliebigen Stellen in eine neue Zeile umzubrechen:

Variablen

Variablen bezeichnen in Python keinen bestimmten Typ und benötigen daher auch keine Typdeklaration. Vielmehr ist die Zuweisung durch das einfache Gleichheitszeichen quasi die Definition einer Variablen. Braucht man im Programm eine Variable, weist man sie mit dem "="-Operator zu.

Für das Abfragen der mathematischen Gleichheit (if y==5) nimmt man dann das doppelte Gleichheitszeichen. In Python kann man Variablen sogar gleichzeitig auf linken und rechten Seite einer Zuweisung benutzen, um direkt in der Zuweisung mit dem Variablenwert zu rechnen.

x=5
x=x+1

Letzteres lässt sich auch einfacher in der so genannten erweiterten Schreibweise ausdrücken

x += 1

Zwar sind die beiden Schreibweisen vom Ergebnis her gesehen gleich, allerdings nicht in der Art der Implementierung, denn bei der erweiterten Zuweisung wird die Referenz der Variablen x nur einmal ausgewertet. So können komplexere Datentypen wie Listen extreme Laufzeitprobleme verursachen, sofern keine erweiterte Zuweisung verwendet wird. Selbstverständlich ist die erweiterte Zuweisungen nicht nur für den +-Operator, sondern auch für die meisten übrigen in Python bekannten Operatoren, ,,-'', ,,*'', ,,/'', ,,**'', ,,//'' (ganzzahlige Division), ,,%'' (Modulo) definiert.

Eine weitere Besonderheit von Variablen in Python ist, dass sich sowohl Wert als auch Typ einer Variablen zur Laufzeit verändern dürfen und können. So wird beispielsweise durch den „Akt“ der Zuweisung

x=5

der Typ der Variablen x automatisch auf Integer (Ganzzahl) gesetzt, da Python diesen anhand des zugewiesenen Wertes erkennt. Allerdings ändert sich der Typ durch eine folgende Operation …

x = 5 + 0,1

... automatisch auf Float (Kommazahl) oder durch …

x = "Text"

... wieder auf String (Zeichenkette).

Dies nur als kleine Einführung zum Variablen-Thema, da im folgenden Teil Variablen verwendet werden. Im späteren Verlauf befassen wir uns noch einmal eingehender mit Variablen.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45130446 / IDEs & Programmiersprachen)