前言

为了更加方便快捷的使用Jupyter Notebook,本文将会介绍一些相关的使用技巧。

相关技巧

使用问号查看对象的相关信息

对于代码中的所有对象,包括:变量、函数、方法、模块、等等,可以在某个对象的前面或后面添加一个?,以查看该对象的相关信息。

1
2
def aaa():
print('Hello World')
1
?aaa

效果如下图:

img

对于我们自定义的函数,可以在函数名的前面或后面添加两个?,这样,在显示出来的相关信息中会包含函数的源代码。

1
2
def aaa():
print('Hello World')
1
aaa??

效果如下图:

img

使用叹号执行Shell命令

在使用Jupyter Notebook编写代码时,只需要在Shell命令前添加一个!,就可以在notebook中执行Shell命令,完全不用来回切换。

举例:查看当前本机网络状态:

1
!ipconfig

效果如下图:

img

除了执行Shell命令之外,还可以将执行结果赋值给Python变量:

1
2
3
a = !ipconfig
print(a)
print(type(a))

关于输出

在notebook中运行单元格中的代码时,在默认情况下,单元格中最后一行的值会被自动输出:

1
2
3
def aaa():
print('Hello World')
18

输出效果如下图:

img

如果不想自动输出单元格中最后一行的值,可以在最后一行的行尾添加一个分号;

1
2
3
def aaa():
print('Hello World')
18;

输出效果如下图:

img

在当前notebook中,如果希望单元格中每一行的值都被自动输出,可添加以下代码:

1
2
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'

输出效果如下图:

img

如果希望在所有的notebook中都自动输出单元格中每一行的值,可以修改或创建ipython_config.py配置文件。

文件路径:

  • Windows:C:\Users\用户名.ipython/profile_default/ipython_config.py

  • MacOS:/Users/用户名/.ipython/profile_default/ipython_config.py

  • Linux:/home/用户名/.ipython/profile_default/ipython_config.py

打开配置文件添加以下代码:

1
2
c = get_config()
c.InteractiveShell.ast_node_interactivity = "all"

跨单元格编码

需要注意的是,在notebook中:

  • 前面运行的单元格会将相关变量保存到内存中,从而后面运行的单元格可以继续使用这些变量

  • 关闭notebook的页面后,内存中保存的变量不会丢失

  • 如果当前notebookShutdown或Restart了,那么内存中保存的所有变量都会丢失

建议:按照单元格从上到下的顺序编写代码并依次运行代码,否则,不仅可读性不好,而且容易出错。

支持Markdown语法

Jupyter Notebook支持Markdown语法,在工具栏的下拉选项中将单元格调整为Markdown即可。

关于Markdown的相关介绍可以查看文章《Markdown语法》

这里提醒一点,在插入图片时,可以直接点击菜单栏中的Edit,在打开的选项中点击Insert Image,这种操作方式优点是:将图片和notebook绑定在一起,在对notebook进行移动或其他操作时不用单独对图片进行处理;缺点是:notebook文件会变大,不能控制图片尺寸。

快捷键

在notebook中有两种单元格,分别为:

Code单元格:用来编写代码
Markdown单元格:用来将纯文本格式化为富文本
每种单元格都有两种模式,分别为:

编辑模式:按Esc键或者点击单元格的外部,都可以切换到命令模式
命令模式:按Enter键或者点击单元格的内部,都可以切换到编辑模式(对于运行之后的Markdown单元格,要双击单元格的内部,才能切换到编辑模式)
编辑模式下的快捷键:

快捷键 功能
Tab 增加缩进(4个空格)、代码自动补全
Shift+Tab 减少缩进(4个空格)、查看对象的相关信息
Ctrl+A 全选
Ctrl+Z 撤销
Ctrl+Y 恢复
Ctrl+/ 注释、取消注释
Ctrl+D 删除行
Ctrl+Home 跳转到单元格的开始处
Ctrl+End 退出编辑模式并进入命令模式
Esc 保存并更新记录点文件
Ctrl+S 向上移动光标
向下移动光标
运行当前单元格
Ctrl+Enter 运行当前单元格,并选中下方的单元格(如果下方没有单元格,则在下方自动插入一个单元格并选中)
Shift+Enter 运行当前单元格,并选中下方的单元格(如果下方没有单元格,则在下方自动插入一个单元格并选中)
Alt+Enter 运行当前单元格,在下方自动插入一个单元格并选中

命令模式下的快捷键:

快捷键 功能
选中上方的单元格
选中下方的单元格
Shift+↑ 扩展选中上方的单元格
Shift+↓ 扩展选中下方的单元格
A 在上方插入一个单元格
B 在下方插入一个单元格
M 将Code单元格转换为Markdown单元格
Y 将Markdown单元格转换为Code单元格
S 保存并更新记录点文件
D 连按两次D 删除选中的单元格
Z 撤销对单元格的删除
X 剪切选中的单元格
C 拷贝选中的单元格
F 查找并替换
V 在下方粘贴单元格
Shift+V 在上方粘贴单元格
Enter 退出命令模式并进入编辑模式
Ctrl+Enter 运行选中的单元格
Shift+Enter 运行选中的单元格,并选中下方的单元格(如果下方没有单元格,则在下方自动插入一个单元格并选中)
Alt+Enter 运行选中的单元格,在下方自动插入一个单元格并选中