Utilisation pratique d'ipython

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

J'ai essayé ensemble.

Vous pouvez faire diverses choses sous la forme de la commande%

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

Vous pouvez voir les détails en ajoutant ?, ?? à l'objet

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.

Profitez de% run

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.

Code facilement complexe avec% edit

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.

Laisser un 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.

Exécutez ruby ou perl

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.

Ou plutôt, exécutez n'importe quelle commande

Ajoutez simplement «!» Au début.

In [1]: ! uname
Darwin

% debug pour déboguer plus tard

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>

Vérifiez le contenu avec% page

Vous pouvez assez imprimer le contenu de l'objet avec % page <objet> et le voir. C'est comme moins.

Si vous oubliez% quickref

Vous pouvez voir la feuille de fromage minimum requise.

Liste de variables avec% 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

Utilisation pratique d'ipython
Utilisation gracieuse de MySQLdb
Comment utiliser IPython
Bibliothèque pratique TF-Slim de Tensorflow
Résumé d'utilisation pratique de Flask
Comment utiliser IPython Notebook
Utilisation et intégration de "Shodan"
Utilisation de Bokeh avec IPython Notebook
Utilisons usercustomize.py au lieu de sitecustomize.py
Résumé de l'utilisation de pandas.DataFrame.loc
Utilisons tomotopy au lieu de gensim
Comment utiliser correctement le package de visualisation Python
Résumé de l'utilisation de pyenv-virtualenv
Tirez pleinement parti de str.format de Python
Enquête pour l'utilisation pratique de BlockChain
Maîtrisez les riches fonctionnalités d'IPython
Maîtriser les riches fonctionnalités d'IPython (2)
Résumé de l'utilisation de csvkit
[Python] Résumé de l'utilisation des pandas
Utilisation du fichier de contraintes ajouté dans pip 7.1
Utilisation d'Apache Spark avec le notebook Jupyter (notebook IPython)
Utilisation de virtualenv, un environnement d'exécution indépendant pour Python
Comment calculer Utiliser% de la commande df
[Python2.7] Résumé de l'utilisation d'unittest
R: Utilisez le japonais au lieu du japonais dans le script
Je souhaite utiliser la console IPython Qt
Utilisez Markdownx de Django en dehors de la racine du site
Jupyter Notebook Principes d'utilisation
Liste des packages Atom que j'utilise vraiment
Bases de PyTorch (1) -Comment utiliser Tensor-
Comment utiliser le débogueur IPython (ipdb)
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
[Question] Comment utiliser plot_surface de python