ipython

ipython ist eine interaktive Version des Python-Interpreters. Er bietet eine Reihe von Extras, die beim Schreiben von Code hilfreich sind. “ipython”-Code ist fast immer “Python”-Code, und die Unterschiede sind im Allgemeinen nur wichtig, wenn man den Code in einer interaktiven Umgebung bearbeitet.

ipython und Jupyternotebook

Das “Jupyter”-Notizbuch ist ein gutes Beispiel für eine interaktive Umgebung - Sie ändern den Code, während er läuft, und überprüfen die Antworten, während Sie Zellen ausführen. Da Sie in einem interaktiven Skript viele halbfertige Ergebnisse haben können, wollen Sie wahrscheinlich so wenige Fehler wie möglich machen. Das ist der Zweck von ipython.

ipython bietet Zugriff auf das Hilfe-/Dokumentationssystem, bietet Tabulatorvervollständigung von Variablen- und Funktionsnamen, erlaubt es Ihnen zu sehen, welche Methoden in einem Modul vorhanden sind …

## Try the autocomplete ... it works on functions that are in scope

print

# it also works on variables

long_but_helpful_variable_name = 1

long_but_helpful_variable_name

Es funktioniert mit Modulen, um die verfügbaren Methoden und Variablen aufzulisten. Nehmen Sie zum Beispiel das Modul “math”:

import math

math.isinf  # Try completion on this

help(math.isnan)

# try math.isinf() and hit <kbd>Shift</kbd>+<kbd>Tabulator</kbd> while the cursor is between the parentheses
# you should see the same help pop up.

# math.isinf()

Es funktioniert bei Funktionen, die spezielle Argumente annehmen, und sagt Ihnen, was Sie angeben müssen.

Probieren Sie dies aus und versuchen Sie, die Klammern mit einem Tabulator zu versehen, wenn Sie diese Funktion selbst verwenden:

import string
string.capwords("the quality of mercy is not strained")

string.capwords()

Kommandozeilen Befehle

Es bietet auch die Möglichkeit Kommandozeilen Komandos auszuführen. hierfür wird die zugrunde liegende Shell / das Dateisystem benutzt. Diese Befehler müssen zubeginn jeder Zeile mit einem ! markiert werden. Dies ist kein Python Code mehr

# execute simple unix shell commands 

!ls

!echo ""

!pwd

Magics

Eine andere Möglichkeit ist, die cell magic-Funktionalität zu verwenden, um das Notebook anzuweisen, die Zelle in etwas anderes zu ändern (hier wird alles in der Zelle als Unix-Shell interpretiert). Hierfür muss zubeginn der Zelle das Magic angegeben werden. Diese Befehle beginnen mit %% oder %.

%%sh 

ls -l
echo ""
pwd

  • Ein “%” ist eine einzeilige magische Funktion, die irgendwo innerhalb der Zelle stehen kann.

  • Ein %% ist eine zellenweite magische Funktion.

%magic  # to see EVERYTHING in the magic system !

Nützliche magische Funktionen:

  • %matplotlib inline sorgt dafür, dass Plots im Notizbuch und nicht in einem externen Fenster erscheinen

  • %run FILE führt den Inhalt der Datei anstelle der angegebenen Zelle aus

  • %%timeit misst, wie lange die Zelle zum Ausführen braucht


Sie können ipython auch im Terminal/Shell auf Ihrem Rechner ausführen. Sie werden sehen, dass ein Teil der Interaktivität auch in einer Textumgebung funktioniert, aber nicht alle Pop-up-Hilfen sind so hilfreich wie in den Notizbüchern.