=================
Ich habe es zusammen versucht.
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
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.
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.
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.
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.
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.
Fügen Sie einfach "!" Am Anfang hinzu.
In [1]: ! uname
Darwin
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>
Sie können den Inhalt des Objekts mit "% page
Sie können das minimal erforderliche Käseblatt sehen.
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