给初学者的 Jupyter Notebook 教程
目录
一、什么是Jupyter Notebook?
1. 简介
2. 组成部分
① 网页应用
② 文档
3. Jupyter Notebook的主要特点
二、安装Jupyter Notebook
0. 先试用,再决定
1. 安装
① 安装前提
② 使用Anaconda安装
③ 使用pip命令安装
三、运行Jupyter Notebook
0. 帮助
1. 启动
① 默认端口启动
② 指定端口启动
③ 启动服务器但不打开浏览器
2. 主页面
① 主页面内容
② 设置Jupyter Notebook文件存放位置
⑴ 创建文件夹/目录
⑵ 配置文件路径
⑶ 修改配置文件
⒜ 打开配置文件
⒝ 查找关键词
⒞ 编辑配置文件
⒟ 取消注释
⒠ 保存配置文件
⒡ 验证
⒢ 注意
四、Jupyter Notebook的基本使用
1. Files页面
① 笔记本的基本操作
② 笔记本重命名的两种方式
⑴ 笔记本内部重命名
⑵ 笔记本外部重命名
⑶ 演示
2. Running页面
3. Clusters页面
4. Conda页面
5. Nbextensions页面
五、拓展功能
1. 关联Jupyter Notebook和conda的环境和包——“nb_conda”☆
① 安装
② 使用
③ 卸载
2. Markdown生成目录
3. Markdown在文中设置链接并定位
4. 加载指定网页源代码
① 使用场景
② 方法
③ 例
5. 加载本地Python文件
① 使用场景
② 方法
③ 注意
④ 例
6. 直接运行本地Python文件
① 使用场景
② 方法
③ 注意
④ 例
7. 在Jupyter Notebook中获取当前位置
① 使用场景
② 方法
③ 注意
④ 例
8. 在Jupyter Notebook使用shell命令
① 方法一——在笔记本的单元格中
⑴ 语法
⑵ 例
② 方法二——在Jupyter Notebook中新建终端
⑴ 启动方法
⑵ 关闭方法
⑶ 例
9. 隐藏笔记本输入单元格
① 使用场景
② 方法一
⑴ 代码
⑵ 例
③ 方法二
⑴ 代码
⑵ 例
10. 魔术命令
六、增加内核——“ipykernel” ☆
1. 使用场景
2. 解决方法之命令行模式
① 同时使用不同版本的Python
⑴ 在Python 3中创建Python 2内核
⒜ pip安装
⒝ conda安装
⑵ 在Python 2中创建Python 3内核
⒜ pip安装
⒝ conda安装
② 为不同环境创建内核
⑴ 切换至需安装内核的环境
⑵ 检查该环境是否安装了ipykernel包
⑶ 为当前环境下的当前用户安装Python内核
⑷ 检验
3. 解决方法之图形界面模式
七、Jupyter Notebook快捷键
1. Mac与Windows特殊按键对照表
2. Jupyter Notebook笔记本的两种模式
① 命令模式
② 编辑模式
3. 两种模式的快捷键
① 命令模式
② 编辑模式
4. 查看和编辑快捷键
① 查看快捷键
② 编辑快捷键
⑴ 方法一
⑵ 方法二
③ 例
八、关闭和退出
1. 关闭笔记本和终端
① 方法一
② 方法二
③ 注意
④ 演示
2. 退出Jupyter Notebook程序
一、什么是Jupyter Notebook?
1. 简介
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍
简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中**「直接」**编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
2. 组成部分
① 网页应用
网页应用即基于网页形式的、结合了编写说明文档、数学公式、交互计算和其他富媒体形式的工具。「简言之,网页应用是可以实现各种功能的工具。」
② 文档
即Jupyter Notebook中所有交互计算、编写说明文档、数学公式、图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。
这些文档是保存为后缀名为.ipynb的JSON格式文件,不仅便于版本控制,也方便与他人共享。
此外,文档还可以导出为:HTML、LaTeX、PDF等格式。
3. Jupyter Notebook的主要特点
-
编程时具有**「语法高亮」**、缩进、tab补全的功能。
-
可直接通过浏览器运行代码,同时在代码块下方展示运行结果。
-
以富媒体格式展示计算结果。富媒体格式包括:HTML,LaTeX,PNG,SVG等。
-
对代码编写说明文档或语句时,支持Markdown语法。
-
支持使用LaTeX编写数学性说明。
二、安装Jupyter Notebook
0. 先试用,再决定
如果看了以上对Jupyter Notebook的介绍你还是拿不定主意究竟是否适合你,那么不要担心,你可以先**「免安装试用体验」**一下,然后再做决定。
值得注意的是,官方提供的同时试用是有限的,如果你点击链接之后进入的页面如下图所示,那么不要着急,过会儿再试试看吧。

试用失败
如果你足够幸运,那么你将看到如下界面,就可以开始体验啦。
主界面

编辑页面

1. 安装
① 安装前提
安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本)。
② 使用Anaconda安装
如果你是小白,那么建议你通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中超过180个科学包及其依赖项。
你可以通过进入Anaconda的官方下载页面自行选择下载;
常规来说,安装了Anaconda发行版时已经自动为你安装了Jupyter Notebook的,但如果没有自动安装,那么就在终端(Linux或macOS的“终端”,Windows的“Anaconda Prompt”,以下均简称“终端”)中输入以下命令安装:
conda install jupyter notebook
③ 使用pip命令安装
如果你是有经验的Python玩家,想要尝试用pip命令来安装Jupyter Notebook,那么请看以下步骤吧!接下来的命令都输入在终端当中的噢!
把pip升级到最新版本
pip install --upgrade pip
- 注意:老版本的pip在安装Jupyter Notebook过程中或面临依赖项无法同步安装的问题。因此**「强烈建议」**先把pip升级到最新版本。
安装Jupyter Notebook
pip install jupyter
三、运行Jupyter Notebook
0. 帮助
如果你有任何jupyter notebook命令的疑问,可以考虑查看官方帮助文档,命令如下:
jupyter notebook --help
或
jupyter notebook -h
1. 启动
① 默认端口启动
在终端中输入以下命令:
jupyter notebook
执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook。
启动过程中终端显示内容如下:
$ jupyter notebook
\[I 08:58:24.417 NotebookApp\] Serving notebooks from local directory: /Users/catherine
\[I 08:58:24.417 NotebookApp\] 0 active kernels
\[I 08:58:24.417 NotebookApp\] The Jupyter Notebook is running at: http://localhost:8888/
\[I 08:58:24.417 NotebookApp\] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
- 注意:之后在Jupyter Notebook的所有操作,都请保持终端**「不要关闭」**,因为一旦关闭终端,就会断开与本地服务器的链接,你将无法在Jupyter Notebook中进行其他操作啦。
浏览器地址栏中默认地将会显示:http://localhost:8888。其中,“localhost”指的是本机,“8888”则是端口号。

如果你**「同时」**启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”……
② 指定端口启动
如果你想自定义端口号来启动Jupyter Notebook,可以在终端中输入以下命令:
jupyter notebook --port <port\_number\>
其中,“<port_number>”是自定义端口号,直接以数字的形式写在命令当中,数字两边不加尖括号“<>”。如:jupyter notebook --port 9999,即在端口号为“9999”的服务器启动Jupyter Notebook。
③ 启动服务器但不打开浏览器
如果你只是想启动Jupyter Notebook的服务器但不打算立刻进入到主页面,那么就无需立刻启动浏览器。在终端中输入:
jupyter notebook --no-browser
此时,将会在终端显示启动的服务器信息,并在服务器启动之后,显示出打开浏览器页面的链接。当你需要启动浏览器页面时,只需要复制链接,并粘贴在浏览器的地址栏中,轻按回车变转到了你的Jupyter Notebook页面。

no_browser
例图中由于在完成上面内容时我同时启动了多个Jupyter Notebook,因此显示我的“8888”端口号被占用,最终分配给我的是“8889”。
2. 主页面
① 主页面内容
当执行完启动命令之后,浏览器将会进入到Notebook的主页面,如下图所示。

如果你的主页面里边的文件夹跟我的不同,或者你在疑惑为什么首次启动里边就已经有这么多文件夹,不要担心,这里边的文件夹全都是你的家目录里的目录文件。你可以在终端中执行以下2步来查看:
① cd 或 cd - 或 cd ~ 或cd /Users/
-
这个命令将会进入你的家目录。
-
“<user_name>” 是用户名。用户名两边不加尖括号“<>”。
② ls
- 这个命令将会展示你家目录下的文件。
② 设置Jupyter Notebook文件存放位置
如果你不想把今后在Jupyter Notebook中编写的所有文档都直接保存在家目录下,那你需要修改Jupyter Notebook的文件存放路径。
⑴ 创建文件夹/目录
-
Windows用户在想要存放Jupyter Notebook文件的**「磁盘」中「新建文件夹」**并为该文件夹命名;双击进入该文件夹,然后复制地址栏中的路径。
-
Linux/macOS用户在想要存放Jupyter Notebook文件的位置**「创建目录」**并为目录命名,命令为:
mkdir;进入目录,命令为:cd;查看目录的路径,命令为:pwd;复制该路径。 -
注意:“<directory_name>”是自定义的目录名。目录名两边不加尖括号“<>”。
⑵ 配置文件路径
- 一个便捷获取配置文件所在路径的命令:
jupyter notebook --generate-config
- 注意:这条命令虽然可以用于查看配置文件所在的路径,但主要用途是是否将这个路径下的配置文件**「替换」为「默认配置文件」。如果你是第一次查询,那么「或许」**不会出现下图的提示;若文件已经存在或被修改,使用这个命令之后会出现询问“Overwrite /Users/raxxie/.jupyter/jupyter_notebook_config.py with default config? [y/N]”,即“用默认配置文件覆盖此路径下的文件吗?”,如果按“y”,则完成覆盖,那么之前所做的修改都将失效;如果只是为了查询路径,那么一定要输入“N”。

常规的情况下,Windows和Linux/macOS的配置文件所在路径和配置文件名如下所述:
-
Windows系统的配置文件路径:
C:\Users\\.jupyter\ -
Linux/macOS系统的配置文件路径:
/Users//.jupyter/或~/.jupyter/ -
配置文件名:
jupyter_notebook_config.py -
注意:
① “<user_name>”为你的用户名。用户名两边不加尖括号“<>”。
② Windows和Linux/macOS系统的配置文件存放路径其实是相同的,只是系统不同,表现形式有所不同而已。
③ Windows和Linux/macOS系统的配置文件也是相同的。文件名以“.py”结尾,是Python的可执行文件。
④ 如果你不是通过一步到位的方式前往配置文件所在位置,而是一层一层进入文件夹/目录的,那么当你进入家目录后,用ls命令会发现找不到“.jupyter”文件夹/目录。这是因为凡是以“.”开头的目录都是隐藏文件,你可以通过ls -a命令查看当前位置下所有的隐藏文件。
⑶ 修改配置文件
-
Windows系统的用户可以使用文档编辑工具或IDE打开“jupyter_notebook_config.py”文件并进行编辑。常用的文档编辑工具和IDE有记事本、Notepad++、vim、Sublime Text、PyCharm等。其中,vim是没有图形界面的,是一款学习曲线较为陡峭的编辑器,其他工具在此不做使用说明,因为上手相对简单。通过vim修改配置文件的方法请继续往下阅读。
-
Linux/macOS系统的用户建议直接通过终端调用vim来对配置文件进行修改。具体操作步骤如下:
⒜ 打开配置文件
打开终端,输入命令:
vim ~/.jupyter/jupyter\_notebook\_config.py

vim打开配置文件
执行上述命令后便进入到配置文件当中了。
⒝ 查找关键词
进入配置文件后查找关键词“c.NotebookApp.notebook_dir”。查找方法如下:
进入配置文件后不要按其他键,用**「英文半角」**直接输入/c.NotebookApp.notebook_dir,这时搜索的关键词已在文档中高亮显示了,按回车,光标从底部切换到文档正文中被查找关键词的首字母。
⒞ 编辑配置文件
按**「小写i」**进入编辑模式,底部出现“–INSERT–”说明成功进入编辑模式。使用方向键把光标定位在第二个单引号上(光标定位在哪个字符,就在这个字符前开始输入),把“⑴ 创建文件夹/目录”步骤中复制的路径粘贴在此处。
⒟ 取消注释
把该行行首的**井号(#)**删除。因为配置文件是Python的可执行文件,在Python中,井号(#)表示注释,即在编译过程中不会执行该行命令,所以为了使修改生效,需要删除井号(#)。

config
⒠ 保存配置文件
先按ESC键,从编辑模式退出,回到命令模式。
再用**「英文半角」**直接输入:wq,回车即成功保存且退出了配置文件。
注意:
-
「冒号(:)」 一定要有,且也是**「英文半角」**。
-
w:保存。
-
q:退出。
⒡ 验证
在终端中输入命令jupyter notebook打开Jupyter Notebook,此时你会看到一个清爽的界面,恭喜!

modified
⒢ 注意
-
以上所有命令均以**「英文半角」格式输入,若有报错,请严格检查这两个条件,「英文」且「半角」**。
-
这里仅介绍了vim编辑器修改配置文件的方法,没有对vim编辑器的详细使用进行讲解,所以无需了解vim编辑器的具体使用方法,只需要按照上述步骤一定可以顺利完成修改!
-
推荐有时间和经历时学习一下vim编辑器的使用。这款强大的编辑器将会成为你未来工作中的利器。
四、Jupyter Notebook的基本使用
1. Files页面

Files页面
此时你的界面当中应该还没有“Conda”和“Nbextensions”类目。不要着急,这两个类目将分别在“五、拓展功能”中的“1.关联Jupyter Notebook和conda的环境和包——‘nb_conda’”和“2.Markdown生成目录”中安装。
Files页面是用于管理和创建文件相关的类目。
对于现有的文件,可以通过勾选文件的方式,对选中文件进行复制、重命名、移动、下载、查看、编辑和删除的操作。
同时,也可以根据需要,在“New”下拉列表中选择想要创建文件的环境,进行创建“ipynb”格式的笔记本、“txt”格式的文档、终端或文件夹。如果你创建的环境没有在下拉列表中显示,那么你需要依次前往“五、拓展功能”中的“1.关联Jupyter Notebook和conda的环境和包——‘nb_conda’”和“六、增加内核——‘ipykernel’”中解决该问题。
① 笔记本的基本操作

笔记本的使用
上图展示的是笔记本的基本结构和功能。根据图中的注解已经可以解决绝大多数的使用问题了!
工具栏的使用如图中的注解一样直观,在此不过多解释。需要特别说明的是“单元格的状态”,有Code,Markdown,Heading,Raw NBconvert。其中,最常用的是前两个,分别是代码状态,Markdown编写状态。Jupyter Notebook已经取消了Heading状态,即标题单元格。取而代之的是Markdown的一级至六级标题。而Raw NBconvert目前极少用到,此处也不做过多讲解。
菜单栏涵盖了笔记本的所有功能,即便是工具栏的功能,也都可以在菜单栏的类目里找到。然而,并不是所有功能都是常用的,比如Widgets,Navigate。Kernel类目的使用,主要是对内核的操作,比如中断、重启、连接、关闭、切换内核等,由于我们在创建笔记本时已经选择了内核,因此切换内核的操作便于我们在使用笔记本时切换到我们想要的内核环境中去。由于其他的功能相对比较常规,根据图中的注解来尝试使用笔记本的功能已经非常便捷,因此不再做详细讲解。
② 笔记本重命名的两种方式
⑴ 笔记本内部重命名
在使用笔记本时,可以直接在其内部进行重命名。在左上方“Jupyter”的图标旁有程序默认的标题“Untitled”,点击“Untitled”然后在弹出的对话框中输入自拟的标题,点击“Rename”即完成了重命名。
⑵ 笔记本外部重命名
若在使用笔记本时忘记了重命名,且已经保存并退出至“Files”界面,则在“Files”界面勾选需要重命名的文件,点击“Rename”然后直接输入自拟的标题即可。
⑶ 演示

重命名
2. Running页面
Running页面主要展示的是当前正在运行当中的终端和“ipynb”格式的笔记本。若想要关闭已经打开的终端和“ipynb”格式的笔记本,仅仅关闭其页面是无法彻底退出程序的,需要在Running页面点击其对应的“Shutdown”。更多关闭方法可以查阅“八、关闭和退出”中的“1.关闭笔记本和终端”

Running
3. Clusters页面
Clusters tab is now provided by IPython parallel. See ‘IPython parallel’ for installation details.
❞
Clusters类目现在已由IPython parallel对接,且由于现阶段使用频率较低,因此在此不做详细说明,想要了解更多可以访问IPython parallel的官方网站。
4. Conda页面
Conda页面主要是Jupyter Notebook与Conda关联之后对Conda环境和包进行直接操作和管理的页面工具。详细信息请直接查阅“五、拓展功能”中的“1.关联Jupyter Notebook和conda的环境和包——‘nb_conda’”。这是目前使用Jupyter Notebook的必备环节,因此请务必查阅。
5. Nbextensions页面

nbextensions
Nbextensions页面提供了多个Jupyter Notebook的插件,使其功能更加强大。该页面中主要使用的插件有nb_conda,nb_present,Table of Contents(2)。这些功能我们无需完全掌握,也无需安装所有的扩展功能,根据本文档提供的学习思路,我们只需要安装Talbe of Contents(2)即可,该功能可为Markdown文档提供目录导航,便于我们编写文档。该安装指导请查阅“五、拓展功能”中的“2.Markdown生成目录”。
五、拓展功能
1. 关联Jupyter Notebook和conda的环境和包——“nb_conda”☆
① 安装
conda install nb\_conda
执行上述命令能够将你conda创建的环境与Jupyter Notebook相关联,便于你在Jupyter Notebook的使用中,在不同的环境下创建笔记本进行工作。
② 使用
-
可以在Conda类目下对conda环境和包进行一系列操作。

conda类目
-
可以在笔记本内的“Kernel”类目里的“Change kernel”切换内核。

切换内核
③ 卸载
canda remove nb\_conda
执行上述命令即可卸载nb_conda包。
2. Markdown生成目录
- 不同于有道云笔记的Markdown编译器,Jupyter Notebook无法为Markdown文档通过特定语法添加目录,因此需要通过安装扩展来实现目录的添加。
conda install -c conda-forge jupyter\_contrib\_nbextensions
-
执行上述命令后,启动Jupyter Notebook,你会发现导航栏多了“Nbextensions”的类目,点击“Nbextensions”,勾选“Table of Contents ⑵”

nbextensions
-
之后再在Jupyter Notebook中使用Markdown,点击下图的图标即可使用啦。

添加目录
3. Markdown在文中设置链接并定位
在使用Markdown编辑文档时,难免会遇到需要在文中设定链接,定位在文档中的其他位置便于查看。因为Markdown可以完美的兼容html语法,因此这种功能可以通过html语法当中“a标签”的索引用法来实现。
语法格式如下:
\[添加链接的正文\](#自定义索引词)
<a id\=自定义索引词\>跳转提示</a\>
- 注意:
-
语法格式当中所有的符号均是**「英文半角」**。
-
“自定义索引词”最好是英文,较长的词可以用下划线连接。
-
“a标签”出现在想要被跳转到的文章位置,html标签除了单标签外均要符合“有头(
)必有尾()”的原则。头尾之间的“跳转提示”是可有可无的。 -
“a标签”中的“id”值即是为正文中添加链接时设定的“自定义索引值”,这里通过“id”的值实现从正文的链接跳转至指定位置的功能。
- 例:
1.有跳转提示语
2.无跳转提示语

4. 加载指定网页源代码
① 使用场景
想要在Jupyter Notebook中直接加载指定网站的源代码到笔记本中。
② 方法
执行以下命令:
%load URL
其中,URL为指定网站的地址。
③ 例

加载指定网站源代码
5. 加载本地Python文件
① 使用场景
想在Jupyter Notebook中加载本地的Python文件并执行文件代码。
② 方法
执行以下命令:
%load Python文件的绝对路径
③ 注意
-
Python文件的后缀为“.py”。
-
“%load”后跟的是Python文件的**「绝对路径」**。
-
输入命令后,可以按
CTRL 回车来执行命令。第一次执行,是将本地的Python文件内容加载到单元格内。此时,Jupyter Notebook会自动将“%load”命令注释掉(即在前边加井号“#”),以便在执行已加载的文件代码时不重复执行该命令;第二次执行,则是执行已加载文件的代码。
④ 例

加载本地Python文件
6. 直接运行本地Python文件
① 使用场景
不想在Jupyter Notebook的单元格中加载本地Python文件,想要直接运行。
② 方法
执行命令:
%run Python文件的绝对路径
或
!python3 Python文件的绝对路径
或
!python Python文件的绝对路径
③ 注意
-
Python文件的后缀为“.py”。
-
“%run”后跟的是Python文件的**「绝对路径」**。
-
“!python3”用于执行Python 3.x版本的代码。
-
“!python”用于执行Python 2.x版本的代码。
-
“!python3”和“!python”属于
!shell命令语法的使用,即在Jupyter Notebook中执行shell命令的语法。 -
输入命令后,可以按
CTRL 回车来执行命令,执行过程中将不显示本地Python文件的内容,直接显示运行结果。
④ 例

直接运行Python文件
7. 在Jupyter Notebook中获取当前位置
① 使用场景
想要在Jupyter Notebook中获取当前所在位置的**「绝对路径」**。
② 方法
%pwd
或
!pwd
③ 注意
-
获取的位置是当前Jupyter Notebook中创建的笔记本所在位置,且该位置为**「绝对路径」**。
-
“!pwd”属于
!shell命令语法的使用,即在Jupyter Notebook中执行shell命令的语法。
④ 例

获取当前路径
8. 在Jupyter Notebook使用shell命令
① 方法一——在笔记本的单元格中
⑴ 语法
!shell命令
- 在Jupyter Notebook中的笔记本单元格中用英文感叹号“!”后接shell命令即可执行shell命令。
⑵ 例

shell命令
② 方法二——在Jupyter Notebook中新建终端
⑴ 启动方法
在Jupyter Notebook主界面,即“File”界面中点击“New”;在“New”下拉框中点击“Terminal”即新建了终端。此时终端位置是在你的家目录,可以通过pwd命令查询当前所在位置的绝对路径。
⑵ 关闭方法
在Jupyter Notebook的“Running”界面中的“Terminals”类目中可以看到正在运行的终端,点击后边的“Shutdown”即可关闭终端。
⑶ 例

终端
9. 隐藏笔记本输入单元格
① 使用场景
在Jupyter Notebook的笔记本中无论是编写文档还是编程,都有输入(In [])和输出(Out [])。当我们编写的代码或文档使用的单元格较多时,有时我们只想关注输出的内容而暂时不看输入的内容,这时就需要隐藏输入单元格而只显示输出单元格。
② 方法一
⑴ 代码
from IPython.display import display
from IPython.display import HTML
import IPython.core.display as di # Example: di.display\_html('<h3>%s:</h3>' % str, raw=True) # 这行代码的作用是:当文档作为HTML格式输出时,将会默认隐藏输入单元格。
di.display\_html('<script>jQuery(function() {if (jQuery("body.notebook\_app").length == 0) { jQuery(".input\_area").toggle(); jQuery(".prompt").toggle();}});</script>', raw=True) # 这行代码将会添加“Toggle code”按钮来切换“隐藏/显示”输入单元格。
di.display\_html('''<button onclick="jQuery('.input\_area').toggle(); jQuery('.prompt').toggle();">Toggle code</button>''', raw=True)
在笔记本第一个单元格中输入以上代码,然后执行,即可在该文档中使用“隐藏/显示”输入单元格功能。
- 缺陷:此方法不能很好的适用于Markdown单元格。
⑵ 例

隐藏/显示方法一
③ 方法二
⑴ 代码
from IPython.display import HTML HTML('''<script\>
code\_show=true;
function code\_toggle() { if (code\_show){ $('div.input').hide(); } else { $('div.input').show(); } code\_show = !code\_show
}
$( document ).ready(code\_toggle);
</script\>
<form action\="javascript:code\_toggle()"\><input type\="submit" value\="Click here to toggle on/off the raw code."\></form\>''')
在笔记本第一个单元格中输入以上代码,然后执行,即可在该文档中使用“隐藏/显示”输入单元格功能。
- 缺陷:此方法不能很好的适用于Markdown单元格。
⑵ 例

隐藏/显示方法二
10. 魔术命令
由于目前暂时用不到过多的魔术命令,因此暂时先参考官网的文档。
六、增加内核——“ipykernel” ☆
1. 使用场景
-
场景一:同时用不同版本的Python进行工作,在Jupyter Notebook中无法切换,即“New”的下拉菜单中无法使用需要的环境。
-
场景二:创建了不同的虚拟环境(或许具有相同的Python版本但安装的包不同),在Jupyter Notebook中无法切换,即“New”的下拉菜单中无法使用需要的环境。
接下来将分别用“命令行模式”和“图形界面模式”来解决以上两个场景的问题。顾名思义,“命令行模式”即在终端中通过执行命令来一步步解决问题;“图形界面模式”则是通过在Jupyter Notebook的网页中通过鼠标点击的方式解决上述问题。
“命令行模式”看似比较复杂,且又划分了使用场景,但通过这种方式来解决问题可以更好的了解其中的工作原理,比如,每进行一步操作对应的命令是什么,而命令的执行是为了达到什么样的目的,这些可能都被封装在图形界面上的一个点击动作来完成了。对于想更深入了解其运作过程的朋友,可以接着向下阅读。
2. 解决方法之命令行模式
① 同时使用不同版本的Python
⑴ 在Python 3中创建Python 2内核
⒜ pip安装
- 首先安装Python 2的ipykernel包。
python2 -m pip install ipykernel
- 再为**「当前用户」**安装Python 2的内核(ipykernel)。
python2 -m ipykernel install --user
- 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。
⒝ conda安装
- 首先创建Python版本为2.x且具有ipykernel的新环境,其中“<env_name>”为自定义环境名,环境名两边不加尖括号“<>”。
conda create -n <env\_name\> python=2 ipykernel
- 然后切换至新创建的环境。
Windows: activate <env\_name\>
Linux/macOS: source activate <env\_name\>
- 为**「当前用户」**安装Python 2的内核(ipykernel)。
python2 -m ipykernel install --user
- 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。
⑵ 在Python 2中创建Python 3内核
⒜ pip安装
- 首先安装Python 3的ipykernel包。
python3 -m pip install ipykernel
- 再为**「当前用户」**安装Python 2的内核(ipykernel)。
python3 -m ipykernel install --user
- 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。
⒝ conda安装
- 首先创建Python版本为3.x且具有ipykernel的新环境,其中“<env_name>”为自定义环境名,环境名两边不加尖括号“<>”。
conda create -n <env\_name\> python=3 ipykernel
- 然后切换至新创建的环境。
Windows: activate <env\_name\>
Linux/macOS: source activate <env\_name\>
- 为**「当前用户」**安装Python 3的内核(ipykernel)。
python3 -m ipykernel install --user
- 注意:“–user”参数的意思是针对当前用户安装,而非系统范围内安装。
② 为不同环境创建内核
⑴ 切换至需安装内核的环境
Windows: activate <env\_name\>
Linux/macOS: source activate <env\_name\>
- 注意:“<env_name>”是需要安装内核的环境名称,环境名两边不加尖括号“<>”。
⑵ 检查该环境是否安装了ipykernel包
conda list
执行上述命令查看当前环境下安装的包,若没有安装ipykernel包,则执行安装命令;否则进行下一步。
conda install ipykernel
⑶ 为当前环境下的当前用户安装Python内核
- 若该环境的Python版本为2.x,则执行命令:
python2 -m ipykernel install --user --name <env\_name\> --display-name "<notebook\_name\>"
- 若该环境的Python版本为3.x,则执行命令:
python3 -m ipykernel install --user --name <env\_name\> --display-name "<notebook\_name\>"
- 注意:
-
“<env_name>”为当前环境的环境名称。环境名两边不加尖括号“<>”。
-
“<notebook_name>”为自定义显示在Jupyter Notebook中的名称。名称两边不加尖括号“<>”,但**「双引号必须加」**。
-
“–name”参数的值,即“<env_name>”是Jupyter内部使用的,其目录的存放路径为
~/Library/Jupyter/kernels/。如果定义的名称在该路径已经存在,那么将自动覆盖该名称目录的内容。 -
“–display-name”参数的值是显示在Jupyter Notebook的菜单中的名称。
⑷ 检验
使用命令jupyter notebook启动Jupyter Notebook;在“Files”下的“New”下拉框中即可找到你在第⑶步中的自定义名称,此时,你便可以尽情地在Jupyter Notebook中切换环境,在不同的环境中创建笔记本进行工作和学习啦!
3. 解决方法之图形界面模式
① 你创建了一个新的环境,但却发现在Jupyter Notebook的“New”中找不到这个环境,无法在该环境中创建笔记本。

图形界面_问题
② 进入Jupyter Notebook → Conda → 在“Conda environment”中点击你要添加ipykernel包的环境 → 左下方搜索框输入“ipykernel” → 勾选“ipykernel” → 点击搜索框旁的“→”箭头 → 安装完毕 → 右下方框内找到“ipykernel”说明已经安装成功。

图形界面_解决
③ 在终端CTRL C关闭Jupyter Notebook的服务器然后重启Jupyter Notebook,在“File”的“New”的下拉列表里就可以找到你的环境啦。

图形界面_验证
七、Jupyter Notebook快捷键
1. Mac与Windows特殊按键对照表
| 符号 | Mac按键 | Windows按键 |
|---|---|---|
| ⌘ | command | 无 |
| ⌃ | control | ctrl |
| ⌥ | option | alt |
| ⇧ | shift | shift |
| ↩ | return | return |
| ␣ | space | space |
| ⇥ | tab | tab |
| ⌫ | delete | backspace |
| ⌦ | fn delete | delete |
| - | - | - |
2. Jupyter Notebook笔记本的两种模式
① 命令模式
-
命令模式将键盘命令与Jupyter Notebook笔记本命令相结合,可以通过键盘不同键的组合运行笔记本的命令。
-
按
esc键进入命令模式。 -
命令模式下,单元格边框为灰色,且左侧边框线为蓝色粗线条。

命令模式
② 编辑模式
-
编辑模式使用户可以在单元格内编辑代码或文档。
-
按
enter或return键进入编辑模式。 -
编辑模式下,单元格边框和左侧边框线均为绿色。

编辑模式
3. 两种模式的快捷键
① 命令模式
| 快捷键 | 用途 |
|---|---|
| F | 查找和替换 |
| ↩ | 进入编辑模式 |
| ⌘⇧F | 打开命令选项板 |
| ⌘⇧P | 打开命令选项板 |
| P | 打开命令选项板 |
| ⇧↩ | 运行当前单元格并选中下一个单元格 |
| ⌃↩ | 运行选中单元格 |
| ⌥↩ | 运行当前单元格并且在下方插入单元格 |
| Y | 将单元格切换至code状态 |
| M | 将单元格切换至markdown状态 |
| R | 将单元格切换至raw状态 |
| 1 | 将单元格设定一级标题 |
| 2 | 将单元格设定二级标题 |
| 3 | 将单元格设定三级标题 |
| 4 | 将单元格设定四级标题 |
| 5 | 将单元格设定五级标题 |
| 6 | 将单元格设定六级标题 |
| ↑ | 选中上方单元格 |
| K | 选中上方单元格 |
| ↓ | 选中下方单元格 |
| J | 选中下方单元格 |
| ⇧K | 向上多选单元格 |
| ⇧↑ | 向上多选单元格 |
| ⇧J | 向下多选单元格 |
| ⇧↓ | 向下多选单元格 |
| A | 在上方插入单元格 |
| B | 在下方插入单元格 |
| X | 剪切选中单元格 |
| C | 复制选中单元格 |
| ⇧V | 粘贴到上方单元格 |
| V | 粘贴到下方单元格 |
| Z | 撤销删除 |
| D, D | 删除选中单元格 |
| ⇧M | 合并选中单元格,若直选中一个则与下一个单元格合并 |
| ⌘S | 保存 |
| S | 保存 |
| L | 转换行号 |
| O | 转换输出 |
| ⇧O | 转换滚动输出 |
| H | 显示快捷键帮助 |
| I, I | 中断Notebook内核 |
| O, O | 重启Notebook内核 |
| esc | 关闭页面 |
| Q | 关闭页面 |
| ⇧L | 转换所有单元格行号且设置持续有效 |
| ⇧␣ | 向上滚动 |
| ␣ | 向下滚动 |
② 编辑模式
| Mac快捷键 | Windows快捷键 | 用途 |
|---|---|---|
| ⇥ | ⇥ | 代码补全或缩进 |
| ⇧⇥ | ⇧⇥ | 提示 |
| ⌘] | ⌃] | 向后缩进 |
| ⌘[ | ⌃[ | 向前缩进 |
| ⌘A | ⌃A | 全选 |
| ⌘Z | ⌃Z | 撤销 |
| ⌘/ | ||
| 注释 | ||
| ⌘D | ||
| 删除该行内容 | ||
| ⌘U | ||
| 撤销 | ||
| ⌘↑ | ⌃↑ | 光标跳转至单元格起始位置 |
| ⌘↓ | ⌃↓ | 光标跳转至单元格最终位置 |
| ⌥← | ⌃← | 光标位置左移一个单词 |
| ⌥→ | ⌃→ | 光标位置右移一个单词 |
| ⌥⌫ | ⌃⌫ | 删除前边一个单词 |
| ⌥⌦ | ⌃⌦ | 删除后边一个单词 |
| ⌘⇧Z | ⌃Y | 重做 |
| ⌘⇧U | ⌃⇧Z | 重做 |
| ⌘⌫ | ⌃⌫ | 删除该行光标左边内容 |
| ⌘⌦ | ⌃⌦ | 删除该行光标右边内容 |
| ⌃M | ⌃M | 进入命令模式 |
| esc | esc | 进入命令模式 |
| ⌘⇧F | ||
| 打开命令选项板 | ||
| ⌘⇧P | ||
| 打开命令选项板 | ||
| ⇧↩ | ⇧↩ | 运行当前单元格并选中下一个单元格 |
| ⌃↩ | ⌃↩ | 运行选中单元格 |
| ⌥↩ | ⌥↩ | 运行当前单元格并且在下方插入单元格 |
| ⌃⇧- | ⌃⇧- | 以光标所在位置分割单元格 |
| ⌘S | ⌃S | 保存 |
| ↓ | ↓ | 下移光标 |
| ↑ | ↑ | 上移光标 |
4. 查看和编辑快捷键
① 查看快捷键
① 进入Jupyter Notebook主界面“File”中。
② 在“New”的下拉列表中选择环境创建一个笔记本。
③ 点击“Help”。
④ 点击“Keyboard Shortcuts”。
② 编辑快捷键
⑴ 方法一
① 进入Jupyter Notebook主界面“File”中。
② 在“New”的下拉列表中选择环境创建一个笔记本。
③ 点击“Help”。
④ 点击“Keyboard Shortcuts”。
⑤ 弹出的对话框中“Command Mode (press Esc to enable)”旁点击“Edit Shortcuts”按钮。
⑵ 方法二
① 进入Jupyter Notebook主界面“File”中。
② 在“New”的下拉列表中选择环境创建一个笔记本。
③ 点击“Help”。
④ 点击“Edit Keyboard Shortcuts”。
③ 例

查看和编辑快捷键
八、关闭和退出
1. 关闭笔记本和终端
当我们在Jupyter Notebook中创建了终端或笔记本时,将会弹出新的窗口来运行终端或笔记本。当我们使用完毕想要退出终端或笔记本时,仅仅**「关闭页面」**是无法结束程序运行的,因此我们需要通过以下步骤将其完全关闭。
① 方法一
⑴ 进入“Files”页面。
⑵ 勾选想要关闭的“ipynb”笔记本。正在运行的笔记本其图标为绿色,且后边标有“Running”的字样;已经关闭的笔记本其图标为灰色。
⑶ 点击上方的黄色的“Shutdown”按钮。
⑷ 成功关闭笔记本。
- 注意:此方法只能关闭笔记本,无法关闭终端。
② 方法二
⑴ 进入“Running”页面。
⑵ 第一栏是“Terminals”,即所有正在运行的终端均会在此显示;第二栏是“Notebooks”,即所有正在运行的“ipynb”笔记本均会在此显示。
⑶ 点击想要关闭的终端或笔记本后黄色“Shutdown”按钮。
⑷ 成功关闭终端或笔记本。
- 注意:此方法可以关闭任何正在运行的终端和笔记本。
③ 注意
⑴ 只有“ipynb”笔记本和终端需要通过上述方法才能使其结束运行。
⑵ “txt”文档,即“New”下拉列表中的“Text File”,以及“Folder”只要关闭程序运行的页面即结束运行,无需通过上述步骤关闭。
④ 演示

关闭笔记本和终端
2. 退出Jupyter Notebook程序
如果你想退出Jupyter Notebook程序,仅仅通过关闭网页是无法退出的,因为当你打开Jupyter Notebook时,其实是启动了它的服务器。
你可以尝试关闭页面,并打开新的浏览器页面,把之前的地址输进地址栏,然后跳转页面,你会发现再次进入了刚才“关闭”的Jupyter Notebook页面。
如果你忘记了刚才关闭的页面地址,可以在启动Jupyter Notebook的终端中找到地址,复制并粘贴至新的浏览器页面的地址栏,会发现同样能够进入刚才关闭的页面。
因此,想要彻底退出Jupyter Notebook,需要关闭它的服务器。只需要在它启动的终端上按:
-
Mac用户:
control c -
Windows用户:
ctrl c
然后在终端上会提示:“Shutdown this notebook server (y/[n])?”输入y即可关闭服务器,这才是彻底退出了Jupyter Notebook程序。此时,如果你想要通过输入刚才关闭网页的网址进行访问Jupyter Notebook便会看到报错页面。
总结
如果是初学python爬虫,觉得自学比较难的,那么我接下来分享的这全套 Python 学习资料一定不要错过,希望能给那些想学习 Python 的小伙伴们带来帮助!
python学习路线

环境搭建
使用 Python 首先需要搭建 Python 环境,我们直接到 Python 官网 下载自己对应平台和版本的安装包进行安装即可
python开发工具
俗话说:工欲善其事,必先利其器,Python 的学习也是一样,新手建议首选 PyCharm,可以快速上手,减少配置时间。

学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、清华编程大佬出品《漫画看学Python》
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

配套600集视频:

六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。



以上资料已经打包好了,朋友们如果需要可以威x信扫描上方二维码免费获得【保证100%免费】
相关文章:
给初学者的 Jupyter Notebook 教程
目录 一、什么是Jupyter Notebook? 1. 简介 2. 组成部分 ① 网页应用 ② 文档 3. Jupyter Notebook的主要特点 二、安装Jupyter Notebook 0. 先试用,再决定 1. 安装 ① 安装前提 ② 使用Anaconda安装 ③ 使用pip命令安装 三、运行Jupyter No…...
搜维尔科技:Xsens和BoB助力生物力学教育
Xsens和BoB助力生物力学教育 搜维尔科技:Xsens和BoB助力生物力学教育...
Vue动态计算Table表格的高度
因为每个用户不同的电脑屏幕宽高度,造成了Table表格的高度不一致,因此想要动态计算出table的高度,让其能够正常的铺满整个屏幕 代码 完整代码如下:首先计算 窗口的高度 - 搜索框的高度 - 固定数值 mounted () {// 计算搜索框的高…...
【MongoDB】MongoDB的聚合(Aggregate、Map Reduce)与管道(Pipline) 及索引详解(附详细案例)
文章目录 MongoDB的聚合操作(Aggregate)MongoDB的管道(Pipline操作)MongoDB的聚合(Map Reduce)MongoDB的索引 更多相关内容可查看 MongoDB的聚合操作(Aggregate) 简单理解ÿ…...
数组和字符串的es6新方法使用和综合案例
文章目录 一、数组1.forEach() 对数组中的每个元素执行回调函数,无返回值。2.map() 通过对数组中的每个元素执行回调函数生成新的数组3.filter() 过滤返回一个符合条件的新数组4.find() 返回符合条件的第一个数组元素,如果不存在则返回undefined5.every(…...
JS语法进阶第一课!—DOM(重点)
1、DOM概念 DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model) 当网页被加载时,浏览器将网页转为一个DOM,并用JS进行各种操作。比如:改变页面中的HTML 元素及其属性&#x…...
Swift 开发教程系列 - 第5章:集合类型
Swift 提供了几种常用的集合类型,用于存储和管理一组数据。这些集合类型包括数组(Array)、字典(Dictionary)和集合(Set)。本章将介绍它们的使用方法及常见操作。 5.1 数组(Array&am…...
Spring:Bean(创建方式,抽象继承,工厂Bean,生命周期)
1,Bean的创建 1.1,调用构造器创建Bean 调用Bean类的无参构造函数来创造对象,因此要求提供无参构造函数。在这种情况下class元素是必须的,值就是Bean对象的实现类。 如果采用设值注入,Spring容器将使用默认的构造器来创…...
Flutter中的Extension关键字
目录 前言 一、什么是扩展(Extension) 二、扩展的语法 三、示例:为String 添加扩展方法 四、使用扩展的场景 五、复杂示例:为DateTime添加扩展 前言 在 Dart 和 Flutter 中,extension 关键字允许开发者为现有的类添加新的功能,而无需修改原有类的代…...
transformers 框架使用详解,bert-base-chinese
以 bert-base-chinese 模型为例,模型目录 model_name "C:/Users/Administrator.DESKTOP-TPJL4TC/.cache/modelscope/hub/tiansz/bert-base-chinese" bert-base-chinese 模型大小只有400多兆,参数的量级在百万级别,与现在动辄几十…...
STM32——ADC
目录 1、ADC的介绍 2、ADC主要特征 3、ADC结构与引脚 4、ADC配置流程 5、示例(光敏电阻的ADC采样) 6、提示 7、结语: 1、ADC的介绍 12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部 信号…...
Unity SRP学习笔记(二)
Unity SRP学习笔记(二) 主要参考: https://catlikecoding.com/unity/tutorials/custom-srp/ https://docs.unity.cn/cn/2022.3/ScriptReference/index.html 中文教程部分参考(可选): https://tuncle.blog/c…...
数据库第五次作业
一要求 二建库建表 触发器 存储过程 三查询 触发器 1 建立触发器,订单表中增加订单数量后,商品表商品数量同步减少对应的商品订单出数量,并测试 测试 2 建立触发器,实现功能:客户取消订单,恢复商品表对应商品的数量 测试 3…...
健身房业务流程优化:SpringBoot解决方案
3系统分析 3.1可行性分析 通过对本健身房管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本健身房管理系统采用SSM框架,JAVA作为开发语言&a…...
【产品经理】工业互联网企业上市之路
树根互联2022年6月2日提交招股书之后,因财务资料超过六个月有效期加三个月延长期,2022年9月30日上市审核中止;2022年12月26日树根互联更新了2022年半年度财务资料,又九个月过去了,其上市进程将面临再一次中止。 处于上…...
Java学习教程,从入门到精通,Java对象和类语法知识点(20)
1、Java对象和类语法知识点 类的定义 使用class关键字定义类。类名通常使用大写驼峰命名法(PascalCase)。类与对象 类是创建对象的模板或蓝图,它定义了对象的属性和行为。对象是类的实例,它包含了类定义的数据(属性&am…...
金融场中的量化交易:民锋数据驱动策略的优势解析市
随着科技的发展,量化交易成为金融市场的重要组成部分。民锋公司通过智能算法和大数据分析,设计了一系列量化交易策略,帮助投资者实现科学投资。本文将探讨民锋在数据驱动策略上的优势,并展示如何通过量化模型在复杂的市场中获得收…...
Docker 配置镜像加速
docker 拉取代码时出现 ERROR: failed to solve: node:16: unexpected status from HEAD request to https:// xxxxxx.mirror.aliyuncs.com/v2/library/node/m…...
HTTP慢速攻击原理及解决办法
目录 引言 HTTP慢速攻击原理 解决办法 Nginx Tomcat 华宇TAS IIS 结论 引言 HTTP慢速攻击(Slow HTTP Attack)是一种拒绝服务攻击(DoS),攻击者通过故意缓慢地发送HTTP请求来耗尽服务器资源,导致合法…...
【系统面试篇】进程和线程类(1)(笔记)——区别、通讯方式、同步、互斥、锁分类
目录 一、问题综述 1. 进程和线程的区别? 2. 进程的状态有哪些? 3. 进程之间的通信方式? (1)管道 (2)消息队列 (3)共享内存 (4)信号量 (…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
6.计算机网络核心知识点精要手册
计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法:数据与控制信息的结构或格式,如同语言中的语法规则语义:控制信息的具体含义和响应方式,规定通信双方"说什么"同步:事件执行的顺序与时序…...
