Grundbegriffe
Programmiersprachen
Eine Programmiersprache ist eine formale Sprache zur Formulierung von Algorithmen die von Computern ausgeführt werden können. Für die Tätigkeit der Softwareentwicklung sind Programmiersprachen als Werkzeug zu verstehen, um die Lösung einer Problemstellung in ein ausführbares Programm zu überführen.
Programmierparadigma
Einer Programmiersprache liegt zumeist ein sog. Programmierparadigma zu Grunde. Als Programmierparadigma versteht man dabei einen fundamentalen Ansatz bzw. fundamentale Prinzipien wie mittels einer Programmiersprache programmiert wird. Grob unterscheidet man zwischen dem imperativen und dem deklarativen Programmierparadigma.
Als imperative Programmierung versteht man die "klassische" Art des Programmierens. Dabei wird mit dem Programm beschrieben, welche Anweisungen und Operationen der Computer in welcher Abfolge durchführen soll. Dem Rechner wird das "WIE", also der genaue Lösungsweg, beschrieben. Programmiersprachen, welche diesem Paradigma unterliegen, verfügen über sog. Kontrollstrukturen um diese Beschreibung zu realisieren. C, Java oder Python können diesem Paradigma zugeordnet werden.
Im Gegensatz dazu wird bei der deklarativen Programmierung der Fokus auf die Beschreibung des "WAS" gelegt. Dem Computer wird genau beschrieben wie die Lösung aussehen soll, den Lösungsweg errechnet der Computer dann eigenständig. Die mengenorientierte Sprache SQL wäre diesem Paradigma zuzuordnen. Die logische Programmiersprache Prolog wäre auch diesem Paradigma zuzuordnen.
Programmiersprache Python
Python ist eine universelle, üblicherweise interpretierte, höhere Programmiersprache.
Universelle Programmiersprache
Python kann für die unterschiedlichsten Vorhaben eingesetzt werden. Folgend einige Beispiele um dies zu verdeutlichen:
- ERP-Systeme wie Odoo
- Projektmanagement Tools wie Trac
- Content Management Systeme wie Plone
- Spiele wie Frets on Fire
- Desktop Anwendungen wie OpenShot, Calibre
- Machine-Learning Bibliotheken wie TensorFlow
- Data Science Bibliotheken with Pandas oder Matplotlib
- Hardwarenahe Microcontroller Programmierung mit MicroPython
Interpretierte Programmiersprache
Python wird zur Laufzeit über einen Interpreter ausgeführt und (üblicherweise) nicht vorher in Maschinensprache kompiliert. CPython ist die Referenzimplementierung des Python Interpreters, welcher von der Python Software Foundation bereitgestellt wird. Im folgenden Schaubild soll die grundlegende Funktionsweise des Interpreters etwas genauer erläutert werden:

Der Python Programmcode, welcher innerhalb von .py Dateien geschrieben wird, wird als Input an den Python Interpreter übergeben. Im Inneren des Python Interpreters wird der Python Programmcode in kompilierten Bytecode als Zwischenrepräsentation überführt. Dieser Bytecode wird innerhalb von .pyc Dateien gespeichert, sodass dieser Vorgang beim mehrmaligen Ausführen des selben Python Programmcodes nur einmalig ausgeführt werden muss (Caching). Der Bytecode wird auf der integrierten virtuellen Machine ausgeführt und erweckt das Programm so zum Leben. Externe Programmbibliotheken (zB TensorFlow) können als Bytecode bereitgestellt werden und werden von der virtuellen Machine geladen.
Neben der CPython Implementierung des Python Interpreters gibt es noch eine Vielzahl weiterer Community-Implementierungen, folgend einige Beispiele:
- Jython ist ein Python Interpreter, welcher Java Bytecode erzeugt und diesen auf der Java Virtual Machine ausführt
- IronPython überführt Python in die .net Welt von Microsoft
- PyPy ist ein alternativer und schnellerer Python Interpreter
Höhere Programmiersprache
Python nutzt Abstraktionen von Konstrukten der Maschinensprache bzw. Assemblersprache um die Programmierung für Menschen einfacher zu gestalten.
Im folgenden wäre beispielhaft demonstriert, wie Assemblercode für ein einfaches Hello, World! in Python aussehen würde:
global _start
_start:
xor eax, eax
jmp short string
code :
pop esi
push byte 15
push esi
push byte 1
mov al, 4
push eax
int 0x80
xor eax, eax
push eax
push eax
mov al, 1
int 0x80
string :
call code
db‘Hello, world!’, 0x0a
Interaktive Python Benutzung
Python kann interaktiv genutzt werden. Dies ist vorallem für Programmieranfänger:innen hilfreich um die Programmiersprache schnell und einfach auszuprobieren. Mit Installation des Python Interpreters wird auch die Python REPL installiert. In der Kommandozeile kann die REPL mit dem Befehl python gestartet werden:

Alternativ kann eine Python Laufzeitumgebung im Web-Browser geöffnet werden. Online Python wäre ein Beispiel einer interaktiven Laufzeitumgebung im Web-Browser.