Ipython实用技巧整理

  1. 命令历史记录:

    # 通过上下箭头切换历史命令
    In [1]: x = 10
    
    In [2]: y = 20
    
    # 使用上箭头回到上一个命令
    In [3]: x
    Out[3]: 10
    
  2. 内省:

    In [4]: x?
    Type:        int
    String form: 10
    Docstring:   int(x=0) -> integer
    
  3. 魔术命令:

    In [5]: %timeit list_ = [x for x in range(10000)]
    387 µs ± 16.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
    
  4. Tab 键自动补全:

    In [6]: s = "Hello, World!"
    
    # 输入 s. 然后按下 Tab 键
    In [7]: s.capitalize()
    Out[7]: 'Hello, world!'
    
  5. 快捷键:

    Ctrl-P   或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令
    Ctrl-N   或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令
    Ctrl-R   按行读取的反向历史搜索(部分匹配) 
    Ctrl-Shift-v   从剪贴板粘贴文本
    Ctrl-C   中止当前正在执行的代码
    Ctrl-A   将光标移动到行首
    Ctrl-E   将光标移动到行尾
    Ctrl-K   删除从光标开始至行尾的文本
    Ctrl-U   清除当前行的所有文本译注12
    Ctrl-F   将光标向前移动一个字符
    Ctrl-b   将光标向后移动一个字符 
    
  6. 图形化输出:

    In [8]: import matplotlib.pyplot as plt
    In [9]: import numpy as np
    In [10]: x = np.linspace(0, 2*np.pi, 100)
    In [11]: y = np.sin(x)
    In [12]: plt.plot(x, y)
    Out[12]: [<matplotlib.lines.Line2D at 0x7f186e99d3d0>]
    
    # 这会在命令行中显示一个正弦波形图
    
  7. 包管理:

    In [13]: !pip install numpy
    
  8. Jupyter Notebook 集成:
    Jupyter Notebook 是一个独立的环境,需要在 Jupyter Notebook 中展示。

  9. 自定义魔术命令

    # 创建一个名为myprint的自定义魔术命令,用于打印字符串两次
    In [1]: from IPython.core.magic import register_line_cell_magic
    ...: @register_line_cell_magic
    ...: def myprint(line, cell=None):
    ...:     if cell is None:
    ...:         print(line)
    ...:     else:
    ...:         print(line)
    ...:         print(cell)
    
  10. 交互式调试

    In [2]: def buggy_function(x):
    ...:     return x/0
    ...:
    In [3]: buggy_function(5)
    ---------------------------------------------------------------------------
    ZeroDivisionError                         Traceback (most recent call last)
    <ipython-input-3-2f3cb4c74a93> in <module>
    ----> 1 buggy_function(5)
    ZeroDivisionError: division by zero
    In [4]: %debug
    > <ipython-input-3-80c21504cd58>(2)buggy_function()
    1 def buggy_function(x):
    ----> 2     return x/0
    [下面是调试器提示符,可以使用标准的 Python 调试命令进行交互]
    
  11. Shell 命令

    In [5]: !ls
    notebooks/  data/  images/
    
  12. 自定义配置
    通过编辑 IPython 的配置文件来修改默认设置。

  13. CPU/GPU 执行时间比较

    In [6]: import numpy as np
    In [7]: %time sum(np.arange(10000))
    CPU times: user 115 µs, sys: 0 ns, total: 115 µs
    Wall time: 120 µs
    Out[7]: 49995000
    
  14. 集成 shell 命令输出

    In [8]: files = !ls
    In [9]: print(files)
    ['notebooks/', 'data/', 'images/']
    

你可能感兴趣的:(ipython,python,开发语言)