Jupyter交互式WebIDE

0. 概要

image-20211017114650947

Jupyter Notebook是一个基于Web的 交互式Python开发工具 ,有很多 魔法 Magic ,可以帮助你在使用Python进行科学计算时有更好的用户体验。

本文主要讲解Jupyter Notebook常用功能的使用方法。

Jupyter Notebook官方文档

1. 不同开发方式的对比

  • PyCharm

    比较智能的Python IDE,对小白友好。

  • vscode + python3

    编辑好python源文件,然后在终端里面执行。

  • python3的原生REPL

    交互式,但是编辑多行代码不方便。

  • Jupyter Notebook 基于Web的交互式IDE (曾用名 IPython)

    交互式查看结果,适合做实验。或者学习的时候,试验各种api的效果。科学计算必备IDE。

2. 安装Jupyter

Windows:

pip install jupyter

Linux:

sudo pip3 install jupyter

本文使用教程以Windows为例

3. 运行Jupyter Notebook服务器

本质上Jupyter Notebook是在本地搭建了一个服务器,Jupyter是基于Web的一款IDE。

我们在前端编辑代码,然后把代码块提交给本地的 Python解释器 解释执行,然后再把输出的信息回传给前端,显示出来。所以为了能够使用Jupyter Notekook,我们必须运行服务器。

在终端输入:

$ jupyter notebook

输出结果类似这样:

image-20211017114938583

默认浏览器会自动打开

image-20211017115105806

运行之后你所看到的目录,就是你在终端运行 jupyter notebook 指令时的路径下的所有文件/文件夹列表。

4. 创建一个文件

New 里面选择 Python3 ,这时Jupyter Notebook会创建一个名为 Untitled.ipyb 的文件。

image-20211017115303737

image-20211017115423960

Untitled 的意思是新创建的这个文件还没有 命名 ,你可以点击上方的文件名进行修改。

image-20211017115454577

问题:那么 .ipynb 是什么,与 .py 的区别又是什么?

ipynb的英文全称是 interactive python notebook block ,交互式的python语句块。里面不光保存了python代码,还记录了代码块的执行过程,每个代码块的输出 (文本/图像),是以 json 的格式存储的。

5. Cell - 小窗格

image-20211017115510585

Cell在英文里面是细胞的意思,在Jupyter Notebook里面代表小窗格,你可以在里面填写 文本 (Markdown) 或者是 代码 (Code) ,当你把鼠标点击到cell上面,就可以在下拉框看到cell的类别,同时也可以进行转换。

image-20211017115526938

一个IDE当然是用来写代码,所以我们先来介绍 代码块

6. Code代码块

6.1 Run - 运行代码块

代码可以是一个块一个块的去执行,在代码块里面填写代码

image-20211017115606946

a = 9
b = 2
a + b

点击 工具栏 上面的 Run 按钮,运行代码块。

image-20211017115710434

image-20211017115732192

符号 In [n] 代表是第n次输入

选中 Ceil ,使用快捷键 Ctrl + Enter 可以直接运行代码块。

6.2 新建代码块

点击工具栏的 + 号,创建一个新的代码块。

image-20211017120105743

快捷键 Alt + Enter

# new code cell

你可以通过工具栏的 上下 按键调整cell的顺序。

image-20211017120126471

6.3 删除代码块

通过工具栏的 剪刀 按钮,可以删除不用的代码块。

image-20211017120143992

快捷键 Ctrl+X

测试删除代码块

# trash1
# trash2

如果你不小心删掉了代码块,还可以通过 Edit/Undo Delete Cell 来撤销刚才的操作。

image-20211017120205970

6.4 中断代码块

有时候,你写了一个非常耗时的操作或者是不小心写了一个死循环,这时你需要中断代码。

点击工具栏上的 正方形按钮 ,可以中断代码

image-20211017120244238

当代码在执行时,左侧的代码块会显示 In[*]

a = 1
while True:
	a = a + 1

KeyboardInterrupt 代表按键中断异常,刚才中断代码,产生了这个按键中断。

6.5 代码注释

选中你要注释的代码区域,然后 ctrl + / 批量添加注释/取消注释

image-20211017120445415

6.6 关于Kernel

当我们运行一个ipyb时,在目录里面,这个文件图标会变成绿色,此时就有一个kernel在处理这个ipyb文件的内容,所有的变量都会被保存。

a = 0 

上面创建了一个变量是 a ,这个变量会常驻kernel,代码块的执行顺序还有执行次数,都会有影响。

例如:多次运行下面的代码块

a = a + 1
print(a)
1

有时候,当你在进行一些不可逆的操作时,重复运行代码块就会 报错 或者得到你不想要的结果。在运行时需要注意。

6.7 重启Kernel

重启kernel,类似重新执行程序,把当前所有kernel里面的变量,产生的中间结果或输出,都清空。

image-20211017120703814

image-20211017120517175

点击工具栏的 restart the kernel (with dialog) 就是重启kernel,但是在重启之前会有一个对话框确认,问你是不是真的要重启。

image-20211017120526234

重启内核并运行所有Ceil

你还可以直接点击 工具栏的 >> 按钮,重启kernel,并按照顺序重新执行所有的Cell。

image-20211017120610694

image-20211017120556216

7. 编辑文本Markdown

Jupyter Notebook除了可以让你编辑代码之外,你也可以往里面插入 图片 文本列表 数学公式 (Latex)

我们编辑这些文本的语法称之为 Markdown 。这个 Markdown 并不是Jupyter Notebook特有的,它是一种文本编辑 规范

将代码块变成Markdown编辑区

image-20211017120743608

双击就可以对Markdown块进行编辑, CTRL+ENTER 就是渲染该Markdown代码块为html。

下面列举一些简单的样例:

7.1 大标题

  1. # 1级标题
  2. ## 2级标题
  3. ### 3级标题

image-20211017120929295

image-20211017120943846

7.2 文本效果

  • *文本* 斜体
  • **文本** 加粗

image-20211017121016624

image-20211017121024623

7.3 嵌入代码片段

格式:

```+语言
# 代码内容
​```

示例:

# python代码块
a = 1
b = 2
print(a + b)

image-20211017121106192

image-20211017121115927

7.4 嵌入Latex数学公式

Latex是专门用于写论文/数学公式的一种语法

格式:

$公式片段$

$$
这里写公式
$$

image-20211017121141094

image-20211017121201575

7.5 嵌入网页链接

格式:

[网页名称](网页url)

示例:

网页链接

[typora文本编辑器官网](https://typora.io/)

image-20211017121300018

渲染效果

image-20211017121323456

7.6 嵌入图片

格式:

![图片名称](图片路径)

示例:

图片

![](jupyter.png)

image-20211017121458423

image-20211017121517355

8. 快捷键

Jupyter Notebook有很多快捷键,你可以点击工具栏上面的 键盘icon 查看所有的快捷键。

image-20211017115833169

在后面的课程里会教大家几个必要的快捷键,也不需要强迫自己记住,多用就好。

image-20211017115850149