Website-Suche

Warum IPython besser als der Standard-Python-Interpreter ist


Eine der besten Eigenschaften von Python ist sein interaktiver Interpreter, der es Ihnen ermöglicht, Ihren Code schnell zu testen. Was wäre, wenn es etwas noch Besseres als den eigenen Interpreter von Python gäbe? Gibt es, und es heißt IPython.

Was ist IPython?

IPython ist ein alternativer interaktiver Interpreter zum standardmäßigen Python-Interpreter, der zusammen mit der Programmiersprache ausgeliefert wird.

Der Standardinterpreter ist nützlich, um kleine Codeausschnitte auszuprobieren und die Sprache zu lernen, aber seine Funktionalität ist grundlegend. IPython fügt viele Funktionen hinzu, die nützlich sind, wenn man interaktives Python intensiver nutzt. Dazu gehören Menschen, die es für Data Science und Datenanalyse verwenden. Es enthält viele Funktionen, die ich später erwähnen werde, wie Syntaxhervorhebung und Magic-Befehle. IPython fügt viele Komfortfunktionen hinzu, um interaktives Python einfacher zu machen, selbst wenn man Python nur als Schreibtischrechner benutzt.

Eines der Spin-offs von IPython ist die beliebte Notebook-Schnittstelle Jupyter, die in der wissenschaftlichen Datenverarbeitung weit verbreitet ist. Wenn man ein Jupyter-Notebook auf Python-Basis verwendet, nutzt man IPython, um den Python-Code auszuführen. Dies ist ein Grund dafür, dass Python und Jupyter ernsthaft die proprietären wissenschaftlichen und technischen Programme wie Mathematica und MATLAB herausfordern.

IPython ist über viele Paketmanager von Linux-Distributionen und in Mamba weit verbreitet, wo es ein wesentlicher Bestandteil meiner Entwicklungsumgebung ist.

Farbe und Hervorhebung machen Code leichter sichtbar

Das, was IPython sofort einen Vorteil gegenüber dem standardmäßigen Python-Interpreter verschafft, ist die Verwendung von Farben und Syntaxhervorhebung. IPython ist farbig, während das normale interaktive Python monochrom ist.

Diese Farbe dient nicht nur der Optik. Wenn Sie Code in den meisten modernen Texteditoren schreiben, verwendet der Editor ihn, um Elemente der Sprache hervorzuheben. Dies ist als „Syntax-Hervorhebung“ bekannt. Sie ist nützlich, um Fehler zu erkennen, bevor Sie sie in den Code übernehmen. Wenn Sie sich daran gewöhnt haben, werden Sie sich fragen, wie Sie zuvor ohne sie gearbeitet haben. Die Syntax-Hervorhebung von IPython bringt dieses Erlebnis in die interaktive Python-Umgebung.

Eine Sache, die ich an IPythons Syntaxhervorhebung schätze, ist, dass sie automatisch Klammern und eckige Klammern hervorhebt. Diese sind in Python häufig. Wie oft haben Sie schon eine Zeile getippt, nur um eine Fehlermeldung zu erhalten, weil Sie vergessen haben, die schließende Klammer oder das schließende eckige Klammerzeichen einzufügen? Wenn Sie die öffnende Klammer eingeben, hebt Python sie hervor. Wenn Sie über die schließende Klammer gehen, wird die zugehörige öffnende Klammer hervorgehoben. Dies ist besonders bei verschachtelten Klammern nützlich. Ohne diese Funktion kann man leicht den Überblick verlieren.

Magische Befehle machen Dinge einfacher

Ipython enthält "Magic-Befehle", mit denen Sie Befehle im System ausführen können. Sie werden mit dem Zeichen "%" (Prozentzeichen) eingeleitet. Ein gutes Beispiel ist der Befehl %cd, der das Arbeitsverzeichnis ändert, ähnlich wie ein Linux-Shell-Befehl.

Zum Beispiel:

%cd /
    

Dies wird in das Stammverzeichnis von Unix-ähnlichen Systemen gehen. Um dies zu beweisen, können Sie einen externen Befehl ausführen, indem Sie ihm ein Ausrufezeichen (!) voranstellen. Um den Befehl pwd auszuführen, um das aktuelle Arbeitsverzeichnis in IPython zu sehen:

!pwd
    

Es gibt viele andere nützliche eingebaute Magie-Befehle, oder einfach „Magics“, in der offiziellen Dokumentation.

IPython bietet integrierte Hilfe

Ein weiteres schönes Merkmal von IPython ist seine integrierte Hilfe. Wenn ich herausfinden muss, was eine Bibliotheksfunktion macht, kann ich ein Fragezeichen (?) hinter das setzen, worüber ich mehr wissen möchte, um eine schnelle Antwort zu erhalten, ohne im Internet suchen zu müssen.

Da ich als Hobby mit Daten arbeite, benutze ich oft NumPy. Wenn ich eine Auffrischung dazu brauche, kann ich NumPy importieren und mir dann Hilfe zu dem Objekt holen.

import numpy as np
np?
    

Ich kann auch Hilfe zu einer bestimmten Funktion bekommen. Zum Beispiel, um die Dokumentation der Methode „mean“ zu sehen, um den arithmetischen Mittelwert zu berechnen:

np.mean?
    

Das spart viel Zeit beim Programmieren, da ich meinen Arbeitsfluss nicht unterbrechen muss, um zum Webbrowser zu wechseln.

Die Tab-Vervollständigung von IPython macht alles einfacher

Ein weiteres Feature, an das ich mich bei Unix-ähnlichen Shells wie Bash und zsh gewöhnt habe, ist die Tab-Vervollständigung. Wenn ich die ersten Buchstaben von etwas eingebe, zum Beispiel eines Befehls oder Dateinamens, versucht die Shell, ihn zu vervollständigen. Das spart viel Tipparbeit, besonders bei langen Befehlen oder Dateinamen.

IPython hat dieses Feature zu Python gebracht. Ich kann die Tabulatortaste drücken, um eine Liste von Befehlen zu erhalten, genau wie im Shell-Fenster. Es funktioniert auch mit anderen Objekten.

Ich werde es anhand eines Beispiels demonstrieren, das ich in anderen Artikeln behandelt habe, ein beliebtes Dataset mit Trinkgeldern in Restaurants in New York City. Ich werde ein Pandas-Dataframe-Objekt über die Seaborn-Bibliothek einrichten, da es dort verfügbar ist.

import seaborn as sns
tips = sns.load_dataset('tips')
    

Ich kann dann beginnen, diesen Datensatz zu erkunden. Ich kann ihn vervollständigen, indem ich die Wörter "tips" eingebe und dann die Tabulatortaste drücke. Ich kann auch Methoden automatisch vervollständigen, wie die Methode .head():

tips.head()
    

Ich kann auch die Spalten mit Tab vervollständigen, wie zum Beispiel "total_bill." Das macht IPython zu einem großen Zeitersparnis beim Tippen.

Sie können Objekte erkunden

Wie bereits erwähnt, funktionieren die Tab-Vervollständigungs- und Hilfebefehle sowohl für Objekte als auch für Funktionen der Python-Sprache. Python ist eine objektorientierte Sprache, was bedeutet, dass sie auf Datenstrukturen basiert, die die zugrunde liegenden Daten als "Objekte" in den Code einbetten, wobei Nachrichten über Methoden übermittelt werden.

Dies kann kompliziert werden, aber die IPython-Befehle machen es einfach, den Code, den ich schreibe, zu verstehen sowie die Objekte zu verstehen, die von Python-Bibliotheken erstellt werden. Ein gutes Beispiel dafür war das Dataframe-Objekt 'tips'. Um das zu überprüfen, kann ich den Befehl 'type' in IPython verwenden:

type(tips)
    

Viele dieser Objekte haben viele Methoden. Mit der Tab-Vervollständigung weiß ich, was verfügbar ist, wieder ohne die Dokumentation nachschlagen zu müssen.

Sie können Systembefehle in IPython ausführen

Während Sie Systembefehle in Python mit der Methode os.system ausführen können, kann dies umständlich sein, wenn Sie sie regelmäßig verwenden. Sie müssen sie in jeder Sitzung importieren. IPython ermöglicht es Ihnen, Systembefehle einfach auszuführen, ohne IPython verlassen oder Bibliotheken importieren zu müssen. Ich habe dies zuvor mit dem Befehl pwd gezeigt.

Es ist nützlich, um viele Systembefehle auszuführen. Zum Beispiel kann ich einen Ping-Befehl ausführen:

!ping -c 4 google.com

Das ist praktisch, wenn ich nur ein Terminalfenster mit IPython geöffnet habe. Wenn ich einen Systembefehl ausführen möchte, muss ich kein weiteres Terminal-Tab oder -Fenster öffnen.

Dieser Mechanismus ist so nützlich, dass es sogar möglich ist, IPython als System-Shell zu verwenden, wenn man möchte. Die offizielle Dokumentation enthält Anweisungen dazu.

Sie können Ihre Sitzungen protokollieren

IPython ist nicht nur nützlich, um Befehle auszuführen, sondern Sie können Ihre Befehle auch in Protokolldateien speichern, um sie zu überprüfen, wieder aufzurufen und mit anderen zu teilen.

Sie können IPython verwenden, um ein Transkript Ihrer Sitzung zu erstellen. Um ein Protokoll zu starten, verwenden Sie beim Starten von IPython die Option --logfile.

ipython --logfile mylog.py

Innerhalb von IPython können Sie den Magic-Befehl %logstart verwenden, der standardmäßig in ipython_log.py speichert:

%logstart

Sie können das Logging mit den Befehlen %logoff und %logon ein- und ausschalten.

%logoff
    

Wenn Sie sich entscheiden, Ihr Protokoll wieder einzuschalten, können Sie die magische Funktion "logon" verwenden:

%logon
    

Du könntest dein Log mit jemand anderem teilen, aber eine bessere Möglichkeit, zu zeigen, was du machst, ist wahrscheinlich ein Jupyter-Notebook, das es dir ermöglicht, Text und Bilder zusammen mit deinem Python-Code einzufügen.

Sie können Ihre eigenen Befehlsverlauf mit dem %history Magic-Befehl anzeigen, aber eine bessere Möglichkeit, Ihren Befehlsverlauf zu betrachten, besteht in der Verwendung der Befehlszeilenbearbeitung, ähnlich wie bei den meisten modernen Shells. Um rückwärts zu suchen, drücken Sie Strg+r.


Python ist großartig, weil es einen interaktiven Modus zum Erlernen der Sprache und zum schnellen Testen von Codeideen bietet. IPython hebt diese Fähigkeit auf die nächste Stufe mit leistungsstarken Funktionen wie Syntaxhervorhebung und Magic Commands. Diese Funktionen machen IPython für aufstrebende Python-Programmierer so nützlich.