1、“.py” 和 “.ipynb” 文件
通常,我们看到的用Python语言编写的源代码文件,其文件后缀是",py"或".ipynb"。
其中".py"文件是标准的Python源代码文件,通常情况下,我们会使用".py"的python源代码文件。
.ipynb(即ipython notebook缩写)是jupyter可识别的后缀,其用来数据分析和画图非常方便的,所以有时在工作和学习中会遇到这样的文件。
1. 创建和运行 “.py” 文件
1)创建 “.py” 文件
在 E 盘下创建名称为 “tutorials” 的文件夹,打开“tutorials” 文件夹,鼠标右击创建文本文档,修改文件名称为“hello.py” ,演示如下:
注意要修改文件的后缀为 “.py” (默认是 “.txt”):
2)打开 “.py” 文件
依次点击“windows 开始菜单”,“所有程序”,在 Anaconda 程序文件夹下打开 “spyder” 程序(对应下图红色数字 1、2、3)。
然后从 “spyder” 中打开 “hello.py” 程序文件(下图红色箭头所指),得到如下界面:
打开 “hello.py” 文件后,我们可以从左边看到,这是一个空白文件,里面没有任何代码。
在上图界面的右下角,我们可以找到 “iPython console” (iPython 控制台),我们可以选择在此输出 Python 程序的运行结果。
3)运行 “.py” 文件
在 “hello.py” 文件中输入如下代码:
print("hello, world")
保存文件,然后点击绿色的“三角符号”来运行程序(spyder 中运行 python 程序的快捷键是 “F5”),如下:
如果是第一次运行,点击绿色的“三角符号”后,会弹出如下对话界面:
选择上图所示默认设置,然后点击 “run”,运行 python 程序,此时,我们会在右下角的 IPython 控制台输出结果,如下:
可以看到,我们输出的结果是 “hello, world” (不含引号),跟上节在 iPython 界面下的输出结果是一致的。
我们再来试试在“hello.py” 文件中加入更多代码:
print("hello, world")
print("hello,", "world", "welcome!")
print(1+2)
print('1+2=', 1+2)
保存文件,然后运行程序,运行结果如下:
hello, world
hello, world welcome!
3
1+2= 3
请注意,不同于 iPython 界面,在 “hello.py” 程序文件中,每一次需要打印输出结果的地方,都需要用 print() 函数来输出结果。
2. 文本编辑器
上面介绍的是在 spyder 中编辑并运行 python 程序,有时候,我们可能想在其他文本编辑器中编辑 python 程序。有很多的文本编辑器可以用来编写 python 程序,作为刚开始接触的同学,可以使用 notepad++ 或者 sublimetext 来编写 python 程序。这两个文本编辑器都是免费可以使用的,并且程序不大。
上述 “hello.py” 文件,在 notepad++ 中打开的界面如下:
关于这两个编辑器的使用,可以自行查找下。
3. 创建和运行 “.ipynb” 文件
“.ipynb” 文件是使用 Jupyter Notebook 来编写 Python 程序时的文件。
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。它会在浏览器中打开并运行相关程序,在这里,我们主要介绍其在编写和运行 Python 程序方面的应用。
在安装好 Anaconda 后,已经自动安装好了 Jupyter Notebook,如下所示(红色数字 4 所指):
点击 “Jupyter Notebook”,可以得到如下启动的命令行界面,以及在浏览器中打开的 Jupyter Notebook 界面。
命令行界面:
Jupyter Notebook 界面:
从上面可看出,默认的启动界面是以 Jupyter notebook 的安装路径为初始路径的(即从 C 盘启动)。
如果我们希望在需要运行的程序所在文件夹启动,该如何操作呢?
以上述 E 盘 “tutorials”文件夹为例,如果我们希望在该文件夹下创建新的 “.ipynb” 文件或者运行该文件夹下的“.ipynb” 文件,我们可以先打开 E 盘 “tutorials” 文件夹,然后按下 “Shift”键同时点击右键,得到如下界面:
点击 “在此处打开命令窗口 (W)”,在弹出的命令行窗口中输入 “jupyter notebook”,在浏览器中得到当前路径下的 jupyter notebook 文件列表,如下:
命令行界面:
Jupyter Notebook 界面:
请注意,命令行界面不能关闭,它是 Jupyter notebook 运行必须要有的环境。
点击上面的 “New” ,可以开始创建新的 “.ipynb” 文件。
在上述新打开的界面中:
- 红色数字 1 处,可以修改文件名称,比如我们修改为 “hello”(不含引号);
- 红色数字 2 处,点击保存文件;
- 红色数字 3 处,点击添加新的代码行;
- 红色数字 4 处,点击运行代码;
- 红色数字 5 处,选择当前是编写代码还是以其他格式进行编写(比如 Markdown),默认是编写代码模式,即“code”;
现在,我们输入之前在 “hello.py” 文件中的代码,每次输入一行代码,然后依次运行(点击红色数字 4 处的符号,或者按快捷键 “Shift”+“Enter”),运行结果如下:
此时,我们可以在 E 盘 “tutorials”文件夹下看到有一个名称为 “hello.ipynb” 的文件,或者在 Jupyter notebook 的首页下,也可以看到该文件,如下:
2、Jupyter Notebook 主题设置
作为用 Python 进行数据分析的人员,jupyter notebook 在平时使用的频率很高。但经常觉得 jupyter notebook 默认的风格不是很爽,总想换一换。
这里我们来分享下给 jupyter notebook 更换主题等内容的方法。
1. 新的风格预览
首先来看看我现在使用的风格,如下。
notebook 页面:
代码文件页面:
2. 主题更换过程
如果你也想更换下 jupyter notebook 的默认风格,不妨接着往下看。
Jupyter Notebook 的默认主题是白色背景的,虽然也简洁大方,便于使用。但是在长时间使用默认界面后,我只有一种感觉,就是亮瞎…… 无比怀念类似 Pycharm 或 vs code 中设置的黑色界面……
于是,想给 jupyter notebook 也换个黑色主题。我搜索了 Jupyter Notebook 的 themes,也就是自定义主题。发现 Github 已经有大神早已解决了这个问题。本次,我们用到的库为 jupyterthemes ,这个第三方库有多个主题可以更换,并且还可以更换字体类型以及大小等,基本满足我们的需求。
jupyterthemes 的 github 地址如下:https://github.com/dunovank/jupyter-themes
默认情况下库的安装如下:
pip install jupyterthemes
但是,上述方法我没有安装成功,主要是获取该库的请求失败。于是,改用豆瓣的 python 库来源,安装的代码如下:
pip install -i https://pypi.doubanio.com/simple/ jupyterthemes
改用豆瓣的来源后,成功安装了 jupyterthemes ,接下来,我们可以来设置自己喜欢的主题。在命令提示符下输入下面的代码来查看有哪些主题可以选择。
jt -l
有如下一些主题可以选择:
有兴趣的同学可以尝试下这几个主题。
设置主题的代码如下:
jt -t oceans16
上面设置的是使用 oceans16 这个主题,更换后的效果如下:
如果不喜欢上面的主题,可以使用下面的代码来恢复到默认主题,如下:
jt -r
对比其他几个主题后,相对来说,我更喜欢 monokai 以及 onedork 主题,最后,我选择使用 monokai 主题,也就是本文开始的主题风格。
3. 我的主题设置参数
我的 monikai 主题设置的详细参数如下:
jt -t monokai -f roboto -nf robotosans -tf robotosans -N -T -cellw 70% -dfs 10 -ofs 10
乍一看,看到这串长长的代码,可能有点晕,但其实很好理解。-t 是设置主题,-f 设置代码的字体,-nf 设置 notebook 的字体,等等。
更多的参数,请查看 jupyterthemes 的参数设置说明,如下:
怎么样,新的界面不错吧,心动不如行动,赶紧动手尝试下吧。
3、Jupyter Notebook 自动代码补全
主要介绍两个功能:
- 针对 jupyter notebook 中的 Markdown 文件自动生成目录;
- 自动补全代码;
上述两个功能,都是由 python 的一个 jupyter 扩展插件 Nbextensions 库来实现。安装该库的命令如下:
python -m pip install jupyter_contrib_nbextensions
然后执行:
jupyter contrib nbextension install --user --skip-running-check
安装完成后,勾选 Table of Contents 以及 Hinterland。其中 Hinterland 是用来自动补全代码的,这个拓展的代码补全功能虽然没有 PyCharm 中的那么全面,但比没有是要好多了。
设置如下:
自动补全代码的效果如下:
4、Jupyter Notebook 输出 pdf
Jupyter Notebook 作为用 Python 进行数据分析的重要工具之一,其最大的特色是可以将代码和结果同步显示在源文件里。Jupyter Notebook 可以用来演示,以及输出各种形式的文件,比如 ipynb,html,md,py,pdf 等,这里主要阐述如何将写好的内容输出为 pdf 格式的文件。
系统环境:
- windows 7 , windows 10;
- Anancoda (基于 Python 3.6 版);
1. 安装顺序
我是按照下面的顺序安装的,缺少支持的话,pip install xxxxxx
1)安装 pandoc
Releases · jgm/pandoc · GitHub
2)安装 MiKTex
3)中文支持
(1)直接修改 tex 模版文件
首先找到 article.tplx 文件,我的 Anaconda 中的路径:
D:\ProgramData\Anaconda3\pkgs\nbconvert-5.3.1-py36h8dc0fde_0\Lib\site-packages\nbconvert\templates\latex\article.tplx
你可以根据自己的安装情况,找到该文件,然后用文本编辑器打开 article.tplx ,将 “\documentclass[11pt]{article}” 修改为 “\documentclass{ctexart}”,对比图示如下:
修改前:
修改后:
(2)打开一个含有中文内容的 jupyter notebook 文件(.ipynb 文件)
在浏览器中打开,选择输出为 pdf 文件(我这里是新建的一个空白的 ipynb 文档),如下:
这里有可能可以正常的输出含有中文的 pdf 文档,如果已输出,那么恭喜你,已经成功啦。但我在输出含有中文内容的 pdf 文档过程中,还遇到了一些问题,主要是显示 “XXX.sty” 文件缺失,这时候,需要安装缺失的文件,由于默认安装情况下,经常会失败。此时,我们需要选择安装源,步骤图示如下:
首先,要通过点击 “Change”来选择:
按下面图示选项,点击 “next”:
在选择安装源的时候,如果有中国的安装来源,请优先选择国内的,这样安装速度较快,成功率相对高些。如果没有,可以多尝试几次其他国家和地区的,比如日本等地。
选择好后,点击安装即可。
一般情况下,将上述缺失的多个.sty 文件安装好后,是可以输出含中文内容的 pdf 文档的。
至此,我们本次的目的已基本完成。