IPython 是一个增强版的 Python 交互式 shell,提供了强大的功能和丰富的命令,使得 Python 编程更加便捷和高效。
1. 自动补全与提示
- 自动补全:在输入代码时,按下
Tab
键可以自动补全变量名、函数名、模块名等。这对快速编写代码非常有帮助。 - 函数参数提示:在输入函数名后,按下
Shift + Tab
键可以查看函数的参数和文档字符串。
2. 魔法命令
IPython 提供了许多以 %
开头的魔法命令,用于执行特殊功能。以下是一些常用的魔法命令:
-
%run script.py
:运行一个 Python 脚本,并将其命名空间导入到当前的 IPython 会话中。 -
%time
:测量单行代码的执行时间。
%time sum(range(1000000))
-
%timeit
:自动多次运行代码以获得更精确的时间统计。
%timeit sum(range(1000000))
-
%who
和%whos
列出当前命名空间中的变量,
还会显示变量的详细信息。
%who %whos
-
%reset
:清除当前命名空间中的所有变量和定义。
%reset
-
%matplotlib inline
:在 Jupyter Notebook 中使用 matplotlib 时,内联显示图表。
3. 快捷键
Ctrl + A
:移动光标到行首。Ctrl + E
:移动光标到行末。Ctrl + C
:中断当前正在执行的命令。Ctrl + L
:清屏。Up/Down Arrow
:浏览命令历史。
4. 交互式调试
%debug
:在代码抛出异常后,自动进入调试模式,可以检查变量、执行代码等。
%debug
%pdb on
:自动在异常抛出时启动调试器,这样在发生错误时可以立即进入调试模式。
%pdb on
手动调试:使用 Python 的 pdb 模块,可以手动在代码中插入断点。
import pdb; pdb.set_trace()
5. 代码片段与宏
%macro:将一组命令记录为一个宏,以便以后重复使用。
%macro my_macro 1-3 5 7-10
%store:保存变量到磁盘,以便在以后的会话中加载。
data = [1, 2, 3, 4, 5]
%store data
重新加载变量:
%store -r data
6. 配置与定制
-
配置文件:IPython 的行为可以通过配置文件进行定制。在第一次运行
ipython profile create
命令后,将生成配置文件(通常位于~/.ipython/profile_default/
目录中)。你可以编辑ipython_config.py
来定制 IPython 的行为。 -
别名与自动导入:在配置文件中设置别名和自动导入的模块,简化日常操作。例如:
c = get_config() c.AliasManager.user_aliases = [ ('ll', 'ls -l') ] c.InteractiveShellApp.exec_lines = [ 'import numpy as np', 'import pandas as pd' ]
7. Jupyter Notebook 集成
-
在 Notebook 中使用 IPython:Jupyter Notebook 是基于 IPython 的交互式计算环境,除了支持上述所有 IPython 功能外,还提供了更强大的文档和展示功能。
-
%%timeit
魔法命令:可以直接在 Notebook 中测量多行代码块的执行时间。%%timeit x = 10 y = 20 z = x + y
8. 快速命令执行
%paste
:自动检测并执行剪贴板中的代码。%cpaste
:手动粘贴代码块并执行。