Grundwissen / Installation

Python ist eine universelle, üblicherweise interpretierte höhere Programmiersprache.

Die Entwicklung von Python wurde 1989 von Guido van Rossum am Centrum voor Wiskunde en Informatica (CWI) in Amsterdam begonnen und wird nun durch die nichtkommerzielle Organisation Python Software Foundation (PSF) koordiniert. Gegenwärtig gibt es eine rasch wachsende Communitiy von Python-Programmierern.

Programm als Algorithmus
Ein Algorithmus ist eine Anleitung zur Lösung einer Aufgabe. Es besteht aus einer Folge von Anweisungen, die so präzise formuliert sind, dass sie auch von einem völlig Unkundigen rein mechanisch ausgeführt werden können. Sie kennen Algorithmen aus dem Alltag:
쐽 Kochrezept
쐽 Anleitung zur Mund-zu-Mund-Beatmung in einer Erste-Hilfe-Fibel
쐽 Gebrauchsanweisung für die Benutzung einer Bohrmaschine

Auch ein Computerprogramm kann man als Algorithmus auffassen. Denn es »sagt« dem Computer, was er zu tun hat. Damit ein Algorithmus von einem Computer ausgeführt werden kann, muss er in einer Sprache formuliert sein, die der Computer »versteht« – einer Programmiersprache. Im Unterschied zu »natürlichen« Sprachen, wie Deutsch oder Englisch, die sich in einer Art evolutionärem Prozess im Laufe von Jahrhunderten entwickelt haben, sind Programmiersprachen »künstliche« Sprachen. Sie wurden von Fachleuten entwickelt und sind speziell auf die Formulierung von Algorithmen zugeschnitten.

Python hat den Anspruch, einen gut lesbaren, knappen Programmierstil zu fördern. So werden beispielsweise Blöcke nicht durch geschweifte Klammern, sondern durch Einrückungen strukturiert. Wegen seiner klaren und übersichtlichen Syntax gilt Python als einfach zu erlernen.

Installation

Unter Linux ist Python meist bereits installiert. Unter Windows muss dies noch durchgeführt werden. Ein Download ist unter https://www.python.org/downloads/ möglich.

Ob Python bereits installiert ist können Sie unter Linux durch Eingabe des Befehls python überprüfen. Wenn Python installiert ist wird die Python – Shell geöffnet.

In Dateien mit Python muss der Pfad zum Python-Interpreter am Anfang der Datei mit angegeben werden. Unter Linux kann dieser durch die Eingabe

#wich python3

herausgefunden werden.

michi@localhost ~ $ python3
Python 3.6.5 (default, Dec 29 2018, 19:08:37)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

Dann wird noch ein Editor zur Bearbeitung benötigt. Im Prinzip ist jeder Editor verwendbar. Es ist nur wichtig, dass die Dateiendung .py ist. PyCharm ist ein öfter verwendeter Editor.

Der Editor Pycharm

Aber auch MS Visual-Studio wird häufig genutzt. Ich benutze den in der Python-Shell integrierten Editor IDLE. Ein Tipp zum IDLE: mit dem Tastenkürzel STRG+p kann man die letzte Eingabe nochmals aufrufen. Bei nochmaligem Drücken wird die Eingabe davor aufgerufen.

IDLE Editor

Eine Übersicht von IDEś für Linux gibt es hier

Eine Programmiersprache ist – wie jede Sprache – durch Syntax und Semantik definiert. Die Syntax legt fest, welche Folgen von Zeichen ein Programmtext in der jeweiligen Sprache ist. Zum Beispiel ist

a = 1 ! 2

kein gültiger Python-Programmtext, weil die Python-Syntax vorschreibt, dass in einem arithmetischen Ausdruck zwischen zwei Zahlen ein Operator (z.B. + , – , * , / ) stehen muss. Das Ausrufungszeichen ! ist aber nach der Python-Syntax kein Operator. Dagegen ist die Zeichenfolge

print ("Schweinebraten mit Klößen")

ein syntaktisch korrektes Python-Programm. Die Syntax sagt aber nichts darüber aus, welche Wirkung dieses Mini-Programm hat. Die Bedeutung eines Python-Programmtextes wird in der Semantik definiert. Bei diesem Beispiel besagt die Semantik, dass auf dem Bildschirm die Zeichenkette Schweinebraten mit Klößen ausgegeben wird.

Python ist eine interpretative Programmiersprache. Dies hat den Vorteil, dass ein und dasselbe Programm auf allen Rechnerplattformen läuft. Als nachteilig könnte man aus Entwicklersicht empfinden, dass der Quelltext einer Software, die man verkaufen möchte, immer offen gelegt ist (open source). Damit besteht das Risiko, dass jemand illegalerweise den Programmtext leicht verändert und ihn unter seinem Namen weiterverkauft. Das geistige Eigentum des Programmentwicklers ist also schlecht geschützt. Auf der anderen Seite gibt es einen gewissen Trend, nur solche Software einzusetzen, deren Quelltext bekannt ist. Denn nur dann ist es möglich, etwaige Fehler, die erst im Lauf des Betriebes sichtbar wer-
den, zu finden und zu beseitigen.

Interaktiver Modus

Um Python im interaktiven Modus zu starten, ruft man den Interpreter in einer Shell ohne weitere Parameter auf:

python3

Nach dem Eingabe-Prompt >>> kann beliebiger Python-Code eingegeben werden. Drückt man die Enter-Taste, so wird dieser unmittelbar ausgeführt.

Möchte man ausführlicher im interaktiven Modus arbeiten, so lohnt es sich, Ipython zu installatieren und ipython3 als Shell-Version beziehungsweise ipython3 qtconsole als GUI-Version aufzurufen. Beide Varianten von Ipython bieten Vervollständigungen der Eingabe durch Drücken der Tab-Taste, die GUI-Version bietet zudem Syntax-Highlighting und ein automatisches Einblenden von Funktionsbeschreibungen („Docstrings“).

Interne Hilfe

Jeder Python-Interpreter bietet dem Nutzer im interaktiven Modus die Möglichkeit, weitere Informationen oder Dokumentationen zu Python-Objekten (Funktionen, Operatoren usw.) anzuzeigen. Um Hilfe zu einem beliebigen Python-Objekt zu erhalten, kann die Funktion help() genutzt werden:

# Hilfe zur print()-Funktion anzeigen:
help(print)

Ebenso können Variablen an die Help-Funktion übergeben werden, um Hilfe zum jeweiligen Objekttyp zu erhalten. Mit type(object_name) kann der Typ eines Objekts, mit id(variable_name) zusätzlich die aktuelle Speicheradresse des Objekts angezeigt werden.

Python-Skripte

Python-Code, der bei der interaktiven Benutzung des Interpreters eingegeben werden kann, kann in gleicher Form ebenso in Textdateien („Skripte“), üblicherweise mit der Endung .py, geschrieben werden. Derartige Dateien können entweder in einer interaktiven Python-Sitzung mittels execfile("skriptname.py") oder folgendermaßen in einem Shellfenster aufgerufen werden:

python3 skriptname.py

Beim Aufruf eines Skripts wandelt Python den Quellcode in so genannten „Bytecode“ um und führt diesen aus. Wird eine Quellcode-Datei anderen Dateien importiert, so legt Python automatisch eine zusätzliche Datei skriptname.pyc im gleichen Verzeichnis an.

Es ist auch möglich, eine Skriptdatei direkt als ausführbare Datei aufzurufen. Dazu fügt man zunächst folgende Zeilen am Anfang der Skriptdatei ein:

#!/usr/bin/python3 
# -*- coding: utf-8 -*-

Die erste Zeile wird „Shebang“ genannt und gibt den Pfad zum Python-Interpreter an, der beim Aufruf des Skripts geladen werden soll; die zweite Zeile gibt an, welcher Zeichensatz in der Datei verwendet wird (utf-8 ist Standard unter Linux).

Mit der obigen Ergänzung kann die Skriptdatei dann mittels chmod ausführbar gemacht werden:

chmod +x skriptname.py

Das Skript kann damit mittels ./skriptname.py aus dem aktuellen Pfad heraus oder allgemein mittels pfad-zum-skript/skriptname.py aufgerufen werden.

Das Schreiben von Code-Dateien ist in Python gegenüber der interaktiven Benutzung des Interpreters unter anderem deshalb von Vorteil, da Python beispielsweise bei der Definition von Funktionen und Kontrollstrukturen Einrückungen statt Klammern zur Gliederung des Quellcodes verwendet.

Gute Texteditoren machen den Umgang mit Einrückungen einfach und bieten obendrein Vorteile wie Syntax-Highlighting, Eingabe-Vervollständigungen, Snippets, usw. Bei Verwendung von Vim und des Vicle-Plugins ist es zudem auch während des Schreibens der Textdateien möglich, einzelne Code-Zeilen oder auch ganze Code-Blöcke an eine laufende Interpreter-Sitzung zu senden; so können die Vorteile des Interpreters (beispielsweise Ausgabe von Variablenwerten und Zwischenergebnissen) und des Texteditors kombiniert werden.

Umfangreichere Skripte sollten zur besseren Lesbarkeit mit Kommentaren versehen werden. Kommentare werden durch das Raute-Symbol # eingeleitet und gehen bis zum Ende der Zeile.

Python-Syntax ausführen

Der Python-Interpreter kann in einem interaktiven Modus aufgerufen werden, in dem man einzelne Zeilen Programmtext eingeben und die Wirkung sofort beobachten kann. Im interaktiven Modus kann man mit Python experimentieren, etwa um sich in neue Programmiertechniken einzuarbeiten oder logische Fehler in einem Programm, das man gerade bearbeitet, aufzuspüren.

Die Python-Shell meldet sich immer mit einer kurzen Information über die Version und einigen weiteren Hinweisen. Dann folgen drei spitze Klammern >>> . Diese Zeichenfolge nennt man Promptstring oder einfach Prompt.

Die Python-Syntax kann direkt ausgeführt werden, indem Sie in die Befehlszeile schreiben:

Die Python Shell

Oder erstellen Sie eine Python-Datei auf dem Server, verwenden Sie die Erweiterung .py und führen Sie sie in der Befehlszeile aus:

localhost# python3 myfile.py 

Python-Einrückungen

Während in anderen Programmiersprachen die Einrückung im Code nur der Lesbarkeit dient, ist in Python die Einrückung sehr wichtig. Python verwendet Einrückungen, um einen Codeblock anzuzeigen.


if 5 > 2:
  print("Fünf ist größer als 2!")

Wird die Einrückung nicht gesetzt bringt Python einen Fehler

Wird die Einrückung nicht gesetzt bringt Python einen Fehler

Bemerkungen

Python bietet Kommentierungsmöglichkeiten für die In-Code-Dokumentation. Kommentare beginnen mit einer # und Python rendert den Rest der Zeile als Kommentar:

#Das ist ein Kommentar
print("Hello, World!")

Weiter zu den Variablen