=================
J'ai essayé ensemble.
Appelé une fonction magique.
Par exemple, % timeit
connaît l'heure d'exécution
In [67]: %timeit [x for x in range(100) if x % 2 == 0]
10000 loops, best of 3: 21.3 us per loop
De plus, si vous augmentez% comme %% timeit
, cela devient une commande multiligne.
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
Vous pouvez parcourir le fichier dans lequel la fonction est définie en utilisant % pfile object
.
Peut aussi être une fonction magique
%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.
La commande % run
peut exécuter n'importe quel script. Par exemple, pour exécuter en appelant pdb
In [1]: %run -d a.py
ça ira. Vous pouvez l'exécuter directement comme suit sans le démarrer un par un.
% 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>
Vous pouvez également utiliser l'option -t
pour afficher l'heure d'exécution, et l'option -p
pour exécuter avec un profil.
Si vous avez plus de lignes sur le shell, vous pouvez utiliser la commande d'édition pour lancer l'éditeur et écrire autant de code que vous le souhaitez. Cependant, notez qu'il ne reste pas dans le journal.
Afin de sauvegarder le code que j'ai écrit Vous pouvez utiliser% logstart et% logstop pour générer le journal dans un fichier et% save pour écrire l'historique dans un fichier.
Le saviez-vous
In [23]: %%ruby
(1..4).each{|x| p x}
....:
1
2
3
4
Vous pouvez obtenir la sortie sous forme de chaîne avec l'option --out
.
Ajoutez simplement «!» Au début.
In [1]: ! uname
Darwin
Si vous utilisez la commande % debug
, vous pouvez remonter avec une exception et accéder plus tard à l'emplacement de l'erreur.
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>
Vous pouvez assez imprimer le contenu de l'objet avec % page <objet>
et le voir. C'est comme moins.
Vous pouvez voir la feuille de fromage minimum requise.
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