Bequeme Verwendung von Ipython

=================

Ich habe es zusammen versucht.

Sie können verschiedene Dinge in Form des Befehls% tun

Wird als magische Funktion bezeichnet. Zum Beispiel kennt% timeit die Ausführungszeit

In [67]: %timeit [x for x in range(100) if x % 2 == 0]
10000 loops, best of 3: 21.3 us per loop

Wenn Sie% wie "%% timeit" erhöhen, wird dies zu einem mehrzeiligen Befehl.

In [70]: %%timeit
    ...: a = 0
    ...: for i in range(100):
    ...:     a = max(a, random.random())
    ...: 
10000 loops, best of 3: 37.7 us per loop

Sie können die Details anzeigen, indem Sie dem Objekt?, ?? hinzufügen

In [45]: os.path.exists?
Type:       function
String Form:<function exists at 0x10890be60>
File:       /Users/***
Definition: os.path.exists(path)
Docstring:  Test whether a path exists.  Returns False for broken symbolic links

In [46]: os.path.exists??
Type:       function
String Form:<function exists at 0x10890be60>
File:       /Users/***
Definition: os.path.exists(path)
Source:
def exists(path):
    """Test whether a path exists.  Returns False for broken symbolic links"""
    try:
        os.stat(path)
    except os.error:
        return False
    return True

Sie können die Datei, in der die Funktion definiert ist, mit "% pfile object" durchsuchen.

Kann auch eine magische Funktion sein

%pfile?
Type:       Magic function
String Form:<bound method NamespaceMagics.pfile of <IPython.core.magics.namespace.NamespaceMagics object at 0x10a9b2dd0>>
Namespace:  IPython internal
File:       /Users/***
Definition: %pfile(self, parameter_s='')
Docstring:
Print (or run through pager) the file where an object is defined.

The file opens at the line where the object definition begins. IPython
will honor the environment variable PAGER if set, and otherwise will
do its best to print the file in a convenient form.

If the given argument is not an object currently defined, IPython will
try to interpret it as a filename (automatically adding a .py extension
if needed). You can thus use %pfile as a syntax highlighting code
viewer.
Class Docstring:
method(function, instance)

Create a bound instance method object.

Nutzen Sie% run

Der Befehl % run kann jedes Skript ausführen. Zum Beispiel beim Aufrufen von pdb

In [1]: %run -d a.py

Wird besorgt. Sie können es wie folgt direkt ausführen, ohne es einzeln zu starten.

% ipython3 -c 'run -d a.py'
Breakpoint 1 at /Users/***/a.py:1
NOTE: Enter 'c' at the ipdb>  prompt to start your script.
> /Users/hiro/***/a.py(1)<module>()
1---> 1 if __name__ == '__main__':
      2     a = 'py' * 5
      3     print(a)

ipdb>

Sie können auch die Option -t verwenden, um die Ausführungszeit anzuzeigen, und die Option -p, um mit einem Profil auszuführen.

Einfach komplexer Code mit% edit

Wenn die Shell mehr Zeilen enthält, können Sie den Editor mit dem Befehl edit starten und so viel Code schreiben, wie Sie möchten. Beachten Sie jedoch, dass es nicht im Protokoll verbleibt.

Hinterlasse ein Protokoll

Um den Code zu speichern, den ich geschrieben habe Sie können% logstart und% logstop verwenden, um das Protokoll in eine Datei auszugeben, und% save, um den Verlauf in eine Datei zu schreiben.

Führen Sie Ruby oder Perl aus

Wusstest du schon

In [23]: %%ruby
(1..4).each{|x| p x}
   ....:
1
2
3
4

Sie können die Ausgabe als Zeichenfolge mit der Option "--out" abrufen.

Oder führen Sie einen beliebigen Befehl aus

Fügen Sie einfach "!" Am Anfang hinzu.

In [1]: ! uname
Darwin

Debuggen Sie später mit% debug

Wenn Sie den Befehl % debug verwenden, können Sie mit einer Ausnahme zurückverfolgen und später zur Fehlerstelle springen.

In [19]: def func(a):
    return a / 0
   ....:

In [20]: func(1)
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-20-db72e56561b1> in <module>()
----> 1 func(1)

<ipython-input-19-82426e2f9c3c> in func(a)
      1 def func(a):
----> 2     return a / 0

ZeroDivisionError: division by zero

In [21]: %debug
> <ipython-input-19-82426e2f9c3c>(2)func()
      1 def func(a):
----> 2     return a / 0

ipdb>

Überprüfen Sie den Inhalt mit% Seite

Sie können den Inhalt des Objekts mit "% page " hübsch drucken und sehen. Es ist wie weniger.

Wenn Sie% quickref vergessen

Sie können das minimal erforderliche Käseblatt sehen.

Variablenliste mit% whos

In [101]: %whos
In [102]: a = 1

In [103]: b = 2

In [104]: c = 'spam'

In [105]: def f(x):
   .....:     return x ** 2
   .....:

In [106]: %whos
Variable   Type        Data/Info
--------------------------------
a          int         1
b          int         2
c          str         spam
f          function    <function f at 0x1009b2440>

Recommended Posts

Bequeme Verwendung von Ipython
Anmutige Verwendung von MySQLdb
Verwendung von IPython
Tensorflows praktische Bibliothek TF-Slim
Bequeme Nutzungsübersicht von Flask
Verwendung von IPython Notebook
Verwendung und Integration von "Shodan"
Verwenden von Bokeh mit IPython Notebook
Verwenden wir usercustomize.py anstelle von sitecustomize.py
Zusammenfassung der Verwendung von pandas.DataFrame.loc
Verwenden wir Tomotopie anstelle von Gensim
So verwenden Sie das Python-Visualisierungspaket ordnungsgemäß
Zusammenfassung der Verwendung von pyenv-virtualenv
Nutzen Sie das str.format von Python in vollem Umfang
Untersuchung zur praktischen Anwendung von BlockChain
Beherrschen Sie die umfangreichen Funktionen von IPython
Beherrschung der umfangreichen Funktionen von IPython (2)
Zusammenfassung der Verwendung von csvkit
[Python] Zusammenfassung der Verwendung von Pandas
Verwendung der in Pip 7.1 hinzugefügten Einschränkungsdatei
Verwenden von Apache Spark mit Jupyter Notebook (IPython Notebook)
Verwenden von virtualenv, einer unabhängigen Ausführungsumgebung für Python
Berechnen Verwenden Sie% des Befehls df
[Python2.7] Zusammenfassung der Verwendung von unittest
R: Verwenden Sie im Skript Japanisch anstelle von Japanisch
Ich möchte IPython Qt Console verwenden
Verwenden Sie Djangos Markdownx außerhalb des Site-Stamms
Jupyter Notebook Grundlagen der Verwendung
Liste der Atom-Pakete, die ich wirklich benutze
Grundlagen von PyTorch (1) - Verwendung von Tensor-
Verwendung des IPython-Debuggers (ipdb)
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
[Frage] Wie verwende ich plot_surface von Python?