购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 试用IPython和Jupyter Notebook

本节将以两种模式使用IPython解释器

除了IPython解释器之外,本节还会介绍如何使用基于浏览器的编程环境Jupyter Notebook编写和执行Python代码

1.5.1 使用IPython交互模式作为计算器

我们使用IPython交互模式来评估简单的算术表达式。

以交互模式进入IPython

首先,打开命令行窗口:

在命令行窗口中,键入 ipython ,然后按Enter键(或Return键),你会看到如下文字(内容取决于使用的平台和IPython的版本):

000

In [1]: 是一个 提示符 ,表示IPython正在等待输入。可以在此处输入 ? 获得帮助或开始输入代码段。

评估表达式

在交互模式下,可以评估表达式:

000

键入 45+72 并按Enter键后,IPython 读取 该代码段,对其进行 评估 并在 Out[1] 位置输出结果 。然后,IPython显示提示符 In[2] ,表明它正在等待输入第二个代码段。对于每个新代码段,IPython会令方括号中的数字加1。本书通常会在一章中的每一节将提示符设置为 In[1] ,表明开始一个新的交互式会话。

下面评估一个更复杂的表达式:

000

Python使用星号(*)做乘法,使用正斜杠(/)做除法。与数学中的定义一样,括号可以强制改变运算顺序,因此先评估括号表达式 (12.7-4) ,得到 8.7 。然后评估 5*8.7 ,结果为 43.5 。接着评估 43.5/2 ,得到结果 21.75 。最后,IPython将结果显示在 Out[2] 中。形如 5 4 2 的整数称为 整型数 ;带小数点的数字,如 12.7 43.5 21.75 ,称为 浮点数

退出交互模式

可以通过下面的操作退出交互模式:

1.5.2 使用IPython解释器执行Python程序

在本节中,我们执行一个名为 RollDieDynamic.py 的脚本,该脚本的编写将在第6章介绍。 .py 扩展名 表明该文件包含Python源代码。脚本 RollDieDynamic.py 模拟投掷一个六面骰子。它提供了一个彩色的动态可视化效果,可动态绘制骰子每个面出现的次数。

更改路径为本章的示例文件夹

脚本 RollDieDynamic.py 在本书的 ch01 源代码文件夹中。在“开始阅读本书之前”部分中提到,先将 examples 文件夹解压缩到用户账户的 Documents 文件夹中。本书的每一章都有一个名为 ch## 的文件夹,该文件夹中包含该章源代码,其中 ## 是从 01 16 的两位数章节编号。首先,打开系统的命令行窗口。接下来,使用 cd (change directory)命令切换到 ch01 文件夹:

执行脚本

要执行脚本,在命令行中键入以下命令,然后按Enter键:

    ipython RollDieDynamic.py 6000 1

运行脚本会打开一个窗口显示可视化结果。数字6,000和1是掷骰子的次数和每次掷骰子的个数。在这个实例中,脚本会依次为每一个骰子更新图表6,000次。

对于一个六面骰子,点数1到6应“等概率”出现,即每个面朝上的概率都为1/6(或约等于16.667%)。如果投掷6,000次骰子,每个面朝上的数学期望大约为1,000次。与掷硬币一样,投掷骰子的结果也是随机的,因此可能会有某些点数出现的次数小于1,000,某些点数正好出现1,000次,还有某些点数出现超过1,000次。脚本随机生成骰子的点数,因此每次运行的结果会有所不同。依次将值1更改为100、1,000和10,000,观察脚本运行的结果可以发现,随着骰子个数的增加,每个点数出现的次数的百分比将无限趋近于16.667%,这就是“大数定律”的体现。下图是脚本执行期间的屏幕截图。

000

创建脚本

通常,可以在任何能够编辑文本的编辑器中创建Python源代码。在编辑器中可以键入程序、进行必要的更正并将其保存到计算机中。 集成开发环境 (IDE)提供支持整个软件开发过程的工具,例如编辑器、用于定位程序错误的调试器等。一些流行的Python IDE包括Spyder(随Anaconda一起提供)、PyCharm和Visual Studio Code。

执行时可能出现的问题

程序通常在第一次执行时无法正确运行。例如,程序可能会执行除以零(Python中的非法操作)的操作,这将导致程序提示错误消息。如果在脚本中出现这种情况,则需要返回编辑器进行必要的更正并重新执行脚本,以确定是否改正了错误。

类似除以零的错误发生在程序运行时,所以这些错误被称为 运行时错误 执行时错误 致命的运行时错误 会导致程序在没有成功完成其工作的情况下立即终止。 非致命的运行时错误 允许程序运行完成,但通常会产生不正确的结果。

1.5.3 在Jupyter Notebook中编写和执行代码

在“开始阅读本书之前”部分中安装的Anaconda Python发行版附带了Jupyter Notebook,这是一个基于浏览器的交互式编程环境,可以在其中编写和执行代码,也可以将代码与文本、图像和视频混合在一起。Jupyter Notebook是进行基于Python的数据分析研究和分享结果的首选编程环境,在科学界,特别是数据科学界得到了广泛的应用。此外,Jupyter Notebook正在支持越来越多的编程语言。

为方便起见,本书的所有源代码也在Jupyter Notebook中提供,使用时只需加载和执行即可。在本节中,我们将使用 JupyterLab 界面管理Notebook文件和Notebook使用的其他文件(如图像和视频等)。JupyterLab也可以方便地编写代码、执行代码、查看结果和调试代码等。

在Jupyter Notebook中编写代码与在IPython中编写代码没有太大差别,因为Jupyter Notebook默认使用IPython。在本节中,我们将创建一个Notebook,并将1.5.1节中的代码添加到其中执行。

在浏览器中打开JupyterLab

要打开JupyterLab,可在Terminal、shell或Anaconda命令提示符状态下进入 ch01 示例文件夹(如1.5.2节所述),键入以下命令,然后按Enter键(或Return键):

    jupyter lab

该命令将会在计算机上运行Jupyter Notebook服务器,然后在默认的Web浏览器中打开JupyterLab,将 ch01 文件夹中的内容显示在JupyterLab界面左侧的File Browser( 000 )选项卡中,如下所示。

000

Jupyter Notebook服务器使我们可以在Web浏览器中加载和运行Jupyter Notebook。在JupyterLab Files选项卡中,通过双击相应的文件可以在窗口的右侧(当前显示Launcher选项卡)显示文件内容。每个打开的文件都会在窗口的这一部分作为单独的选项卡显示。如果不小心关闭了浏览器,可以在Web浏览器中输入地址http://localhost:8888/lab重新打开JupyterLab。

新建一个Jupyter Notebook

在Jupyter Notebook的Launcher选项卡中,单击Python 3按钮创建名为 Untitled.ipynb 的新Jupyter Notebook,然后就可以在其中输入和执行Python 3代码。文件扩展名 .ipynb 是IPython Notebook的缩写(Jupyter Notebook的原始名称)。

更改Notebook文件名

将文件名 Untitled.ipynb 改为 TestDrive.ipynb

1. 右键单击 Untitled.ipynb 选项卡,然后选择Rename Notebook...。

2. 将名称改为 TestDrive.ipynb ,然后单击RENAME。

现在,JupyterLab的顶部如下图所示。

000

评估一个表达式

单元格 是Notebook的工作单元,可以在其中输入代码段。默认情况下,新Notebook只包含一个单元格,就是在 TestDrive.ipynb 的Notebook中看到的矩形框,不过也可以添加更多的单元格。在单元格的左侧,符号 []: 是Jupyter Notebook在执行单元格 显示单元格代码段编号的位置。单击单元格,然后键入表达式

    45 + 27

按组合键Ctrl + Enter(或Control + Enter)执行当前单元格的代码。JupyterLab在IPython中执行代码,然后在单元格下方显示结果。

000

添加并执行另一个单元格

下面,我们来评估一个更复杂的表达式。首先,单击Notebook左上角工具栏中的+按钮,在当前单元格下方添加一个新单元格。

000

单击新单元格,然后键入表达式

    5 * (12.7 - 4) / 2

按组合键Ctrl + Enter(或Control + Enter)执行单元格中的代码。

000

保存Notebook

如果对Notebook做了修改但尚未保存,Notebook选项卡中的 000 将变为 000 。要保存Notebook,选择JupyterLab的File菜单(不在浏览器窗口的顶部),然后选择Save Notebook。

各章示例提供的Notebook

为了方便起见,每章的示例都提供了可以立即执行的Notebook,但都没有显示输出。可以按照代码段逐个处理这些Notebook,并在执行每个代码段时查看输出的结果。

现在来看一下如何加载现有的Notebook并执行其单元格。首先,重置 TestDrive.ipynb Notebook,删除它的输出和代码段编号,这将使Notebook返回到初始状态。然后,从Kernel菜单中选择Restart Kernel and Clear All Outputs...,单击RESTART按钮。当需要重新执行Notebook的代码段时,也可以使用上面的命令。Notebook如下图所示。

000

选择File菜单中的Save Notebook,然后单击 TestDrive.ipynb 选项卡的 000 按钮关闭Notebook。

打开并执行一个已有的Notebook

当需要从给定章节的示例文件夹中启动JupyterLab时,可以从该文件夹或它的任何子文件夹中打开Notebook。一旦定位到了需要的Notebook后,可以双击将其打开。现在再次打开 TestDrive.ipynb Notebook。打开后,可以使用本节前面所述的方法单独执行每个单元格,也可以从Run菜单中选择Run All Cells立即执行Notebook中所有的单元格。Notebook将按顺序执行每一个单元格,并在每个单元格下方显示该单元格的输出。

关闭JupyterLab

使用完JupyterLab后,可以关闭其浏览器选项卡,然后在运行JupyterLab的终端、shell或Anaconda命令提示符中,按组合键Ctrl + C(或Control + C)两次。

JupyterLab提示

以下是使用JupyterLab进行工作的几个技巧:

关于JupyterLab的更多信息

JupyterLab还有许多实用的功能。要了解这些功能,可以阅读Jupyter团队对JupyterLab的介绍,链接为https://jupyterlab.readthedocs.io/en/stable/index.html。

单击GETTING STARTED下的Overview可以看到概述。此外,如需了解更多其他的功能,可以阅读USER GUIDE,其中有对JupyterLab界面、文件操作、文本编辑器和Notebook的介绍。 U0vWTBKM48QJ0Lm6t1IWtvDf9/MNKfFM9fO79Z8V+1LUz/IYiDy0bBAGUWdnlZ8X

点击中间区域
呼出菜单
上一章
目录
下一章
×