12.2. Python ausführen#

In diesem Kurs verwenden wir Jupyter Notebooks, welche wir im gleichnamigen Abschnitt genauer Besprechen. Diese Notebooks gibt es noch nicht so lange und sie eigenen sich auch nur für bestimmte Zwecke.

Die wohl gängigste Technik Python-Anwendungen zu entwickeln ist es den Code in Dateien abzulegen und dieses Datei dann interpretieren zu lassen, d.h., auszuführen. Insbesondere für die Entwicklung großer Anwendungen (z.B. auch Webseiten) oder Pakete, wie etwa roboworld, und Skripte, ist diese Methode geeignet. Notebooks eigenen sich hingegen für kleine Probleme bei denen wir Pakete bzw. Module lediglich Nutzung aber nicht selbst entwickeln.

Manchmal möchten wir aber auch nur ein paar Zeilen Code ausprobieren und zwar ohne irgendeine größere Entwicklungsumgebung zu starten. Wir haben vielleicht vergessen wie Python den +-Operator für zwei Listen realisiert und möchten das schnell ausprobieren. Hierzu kann man durch die sog. Read, Evaluate, Print, Loop (REPL) zu Deutsch Lese-Auswerte-Ausgabe-Schleife oder auch IPython-shell, direkt mit dem Python-Interpreter interagieren.

12.2.1. REPL#

12.2.1.1. Python#

Öffnen Sie Ihre Konsole und rufen

python

auf. Jetzt können Sie den Python-Code direkt eintippen. Es wird das Ergebnis des letzten Befehl ausgegeben. Zum Beispiel können wir

x = 3 + 6
x + 6

rechnen. Wir können auch Mehrzeilige Befehle abfeuern. Lassen Sie uns z.B. eine Funktion add(x, y) definieren:

def add(x, y):
    return x + y

add(9, 5)
../../_images/repl.png

Abb. 12.3 Ausgabe die auf der Konsole durch die oben angegeben Befehle erzeugt wird.#

Mit quit() oder ctrl + D bzw. Strg + D beenden Sie den Kommandozeileninterpreter.

12.2.1.2. IPython#

Mit dem Befehl ipython starten Sie einen anderen Kommandozeileninterpreter zum interaktiven Arbeiten. Auf diesem basieren die Jupyter Notebooks und Sie müssen das jupyterlab Modul dazu installiert haben.

ipython

Wir können den selben Code ausführen:

../../_images/ipython.png

Abb. 12.4 Ausgabe die auf der Konsole durch die oben angegeben Befehle erzeugt wird.#

12.2.2. Script / Datei#

Die nächste Möglichkeit besteht darin den Code in eine Python-Datei zu packen. Wir öffnen unseren Texteditor unserer Wahl und tippen folgenden Code ein:

import sys

n = int(sys.argv[1])
square_sum = 0

for i in range(n):
    square_sum += (i+1)**2

print(square_sum)

Dieser Berechnet uns die Summe der Quadratzahlen von 1 bis n, wobei n das 1. Argument des Programmaufrufs ist. Das 0. Argument ist immer der Name der Datei in der das Python-Script steht. Wir speichern die Datei unter dem Namen square_sum.py im aktuellen Verzeichnis ab und rufen

python square_square.py 100

und erhalten als Ausgabe die Summe aller Quadratzahlen von 1 bis einschließlich 100.

Damit Ihr Code nicht ausgeführt wird, wenn Sie Ihn als Modul importieren, sondern nur wenn Sie Ihn direkt aufrufen, verwendet man eine Bedingung der folgenden Form:

if __name__ == '__main__':
    # Execute when the module is not initialized from an import statement.
    ...

und es ist gute Praxis anstatt des obigen Codes, folgendes zu schreiben:

import sys

if __name__ == '__main__':
    n = int(sys.argv[1])
    square_sum = 0

    for i in range(n):
        square_sum += (i+1)**2

    print(square_sum)

Der Aufruf

python square_square.py 100

funktioniert nach wie vor!

12.2.3. Jupyter Notebook#

Jupyter Notebooks sind die letzte Möglichkeit Python-Code zu entwickeln und auszuführen. Diese besprechen wir noch im Detail in Abschnitt Jupyter Notebooks. Hier sei nur erwähnt, dass Sie mit

jupyter lab [path/to/notebook/file]

ein bestimmtes Notebook starten und mit

jupyter lab

die Jupyter-Lab-Umgebung im aktuellen Verzeichnis starten. Dazu muss das jupyterlab Modul auf Ihrem System installiert und auffindbar sein.