
1.3 Jupyter Notebook
Jupyter脱胎于IPython(Interactive Python,交互式Python),是Julia、Python及R语言的组合,Jupyter不仅支持Python,目前它所能支持运行的编程语言已达40多种。Jupyter具备“所见即所得,语法高亮、Tab补全,支持Markdown、数学公式编写,允许导出为HTML和PDF”等优点。
1.3.1 操作界面
1.新建笔记本
在Jupyter Notebook主界面的右上角,选择New→Python 3(ipykernel),用于新建Notebook(笔记本),如图1-17所示。
新建的Notebook(笔记本)如图1-18所示。

图1-17 新建笔记本(1)

图1-18 新建笔记本(2)
图1-18中,Untitled1是Notebook的名称,可以通过双击后进行更改。
2.界面构成
Notebook的界面主要由标题栏、菜单栏、工具栏、单元格组成,如图1-19所示。
3.菜单栏
菜单栏由File、Edit、View、Insert、Cell、Kernel、Widgets、Help这9个菜单组成。File菜单主要用于文件的保存与新建,Edit菜单主要用于编辑单元格,View菜单主要用于标题栏、工具栏、单元格相关项的显示与隐藏,Insert主要用于插入单元格,Cell主要用于运行代码单元格,Kernel主要用于运行Python代码,Widgets主要用于增强交互功能,Help主要用于帮助文档的链接。

图1-19 Jupyter Notebook界面说明
4.工具栏
Jupyter Notebook中常用工具栏及说明,如图1-20所示。

图1-20 Jupyter Notebook中常用工具栏及说明
5.代码单元格
Notebook文档是由一系列单元(Cell)构成的,主要有两种形式的单元。
(1)代码单元。用于编写代码,按Shift+Enter键运行代码,其结果显示在本单元下方。
(2)序列标志。In[]:这样的序列标记,方便人们查看代码的执行次序。
1.3.2 Code运行模式
Jupyter Notebook命令运行模式(代码模式)的4种特征:绿色边框、闪动的光标、代码(下拉菜单)、铅笔图标,如图1-21所示。

图1-21 Jupyter Notebook命令运行模式(1)
在代码单元格输入以下代码:
import numpy as np import pandas as pd
单击工具栏“运行”按钮或按住Shift+Enter键,单元格左侧的[]会先变为[∗]再变为[<num>]。[]:表示运行前,[∗]:表示运行中,[<num>]:表示已运行结束,<num>代表的是运行结束后当前单元格[]所显示的数字。运行后如图1-22所示。

图1-22 Jupyter Notebook命令运行模式(2)
[∗]运行后会产生3种可能的结果:
(1)报错,会出现一串提示。
(2)运行正常,但无法看到结果。
(3)运行正常,可以看到运行结果。
报错举例:print(1+"2"),如图1-23所示。

图1-23 Jupyter Notebook报错提示
如果有对变量进行赋值的代码,运行结束后,意味着变量已被存入内存,则此变量可以在后面直接调用。这是Jupyter强于其他解释器的地方,示例代码如下:
a = 3 b = 2+a b
结果为5,如图1-24所示。

图1-24 Jupyter Notebook的运行结果
如果需要重新运行Notebook中的所有代码,则可单击工具栏的双三角形(►►)或通过菜单工具栏Kernel→Restart & run all,在弹出的确认对话框中,单击“重启并运行所有代码块”按钮,如图1-25所示。
注意:后续第1~7章的代码都是以Jupyter Notebook演示为主,其中In[]:单元格内,代表的是代码的输入,Out[]:代表的是代码的输出。若采用Spyder或PyCharm等编译代码,则在所有显示输出的部分,可能需要在外面套上print()才可以得到Jupyter Notebook中显示的结果。

图1-25 重启并运行Jupyter Notebook的所有代码块
1.3.3 Markdown模式
单击下拉菜单,选择Markdown。Markdown模式的几个特征如图1-26所示。

图1-26 Markdown模式(1)
Markdown单元支持对文本进行编辑。采用Markdown的语法规范,可以设置文本格式、插入链接、图片及数学公式。同样使用Shift+Enter运行Markdown单元来显示格式化的文本。在单元格外面单击,进入蓝框,然后按下M键;或者在工具栏菜单中选择Markdown。在单元格输入print(1+2),对比前后的效果,如图1-27所示。

图1-27 Markdown模式(2)
在Markdown模式下,文本字符串末尾的空格会影响显示的结果,如图1-28所示。

图1-28 Markdown模式(3)
1.3.4 常用快捷键
在Markdown模式下,按下H键,查看所有快捷键,如图1-29所示。

图1-29 常用快捷键
Jupyter Notebook常用快捷键见表1-1。
表1-1 Jupyter Notebook常用快捷键

1.3.5 常用魔法命令
%,%%,称为魔术关键字(Magic Keywords),是用于控制Notebook的特殊命令。以下是Jupyter Notebook中较常用的几个魔法命令。
(1)%timeit:获取代码的运行时间。
(2)%ls:获取当前目录下所有的文件内容。
(3)%matplotlib inline:在文档中嵌入Matplotlib生成的图形。注意:如果用了这个魔法函数,则可以在代码中省略plt.show()。
(4)%run:运行“.py”格式的Python文件。
(5)%load:用外部脚本替换当前单元格。
(6)%pwd:获取当前目录。