推荐:Jupyter Notebook
介绍
Jupyter Notebook是一个交互式的笔记本,但是它的功能不仅仅是做笔记,还可以直接运行代码。目前在数据科学领域广泛应用,我见过的包括kaggle和很多机器学习深度学习的课程作业都是这种形式,在著名网站 github 上面也有很多用 Jupyter Notebook编写的代码库。
我刚开始简单的以为 Jupyter Notebook 就是在浏览器上编程的IDE,除了作图的时候显示图片能够嵌入在网页中,这样不必再弹出一个窗口,但是也感觉方便不了多少。但是,直到后来发现这东西不仅仅可以用来编程,它还可以很方便的做笔记。特别是我发现 Jupyter Notebook 居然支持 Markdown 标记语法和 Latex 数学公式,我就喜欢上它了,这就是我找了许久的笔记本啊。
安装与运行
Jupyter Notebook 是 Anaconda
自带的应用程序,推荐直接使用 Anaconda,可以不用另外安装。同时 Anaconda 能够方便的管理各种 Python 的开发包,十分方便。
当然,你也可以分开安装,官网 https://jupyter.org/install 有安装指导,只需要敲入几个命令就完成了。
运行需要在终端或者命令行敲入命令
jupyter notebook
运行界面如图所示

基本使用
Jupyter Notebook 是按block块来组织的,每个块可以是代码或者文字,同时代码还会有一个结果区域。我们可以自由的组织页面的内容。
代码通常是由 Python 语言编写的,当然也可以安装其他解释器来编写其他语言,可以使用的功能比本地的IDE会少点,但基本的功能都有,比如可以进行代码补全,另外运行的结果图片不需要再弹出一个对话框来显示,图片能够内嵌在网页中,并且无需特定的操作也能够把图片保存下来。

如下是运行代码,或者把markdown渲染成需要的格式的一个菜单栏,上面的菜单栏还能对这些单元进行更多的操作。

其中还内置了许多快捷键,能够提高操作的效率,可以在菜单栏中的 Help 中查看。

Jupyter Notebook 的界面真的很友好,基本上第一次用就能够很快上手,快去使用吧。
Markdown
Markdown是一种轻量级的标记语言,目前已经是全球许多论坛的书写格式,包括GitHub和StackOverflow,很多作家也是用这个来写作。但是真的很简单,大概只需要十来个标记就可以很好的使用Markdown了,在不需要过于精确的排版时,能够比word更快的完成排版任务。它能够做到格式与内容分离,让人专注内容,而不需要纠结排版样式,也能够在写作的过程双手保持在键盘上,而不需要频繁的键鼠切换。
Jupyter Notebook 基本完美支持原生的 Markdown 格式,用来写东西十分方便。在这里简单介绍Markdown的几个用法,更多内容可以在 https://markdown-zh.readthedocs.io/en/latest/ 中查看。
标题:只需要在一行文字前加上 “# ”,如果需要多级标题,那就多加几个 "#" 吧。

表格:插入几个“|”分隔一下就行了。

列表:如果是无序列表,加入“-”;有序列表,加入“1. ”

Latex
Latex 是排版的标准,你可以拿来写任何内容,当然也包括数学公式。目前的论文和书籍的排版操作大都是采用 Latex 来排版的,特别是包含数学公式的内容。
这里简单介绍数学公式的排版方式,更多内容可以查看 https://katex.org/docs/supported.html 网站。
Latex 中显示数学公式有两种方法,文本内联和单独显示。内联可以通过 "" 来显示,即公式两边各一个美元符号;单独显示可以通过 "$$ $$"来显示,即公式两边各两个美元符号。
公式的标记语言比较复杂,但是记不住也没关系,可视化编辑网站 https://latex.codecogs.com/eqneditor/editor.php 可以直接拖动你需要的公式,就可以产生相应的 Latex 代码。

例如,Latex中的公式 “z = (\frac{dx}{dy})^{1/3}” 可以展示如下
常见问题解决方案
修改运行目录
我第一次使用时发现打开的目录不包含自己所需要的文件,而在 Jupyter 又不能够直接切换到其他目录。
简单的方法就是在打开 Jupyter 之前,先把终端目录切换到自己文件的目录下再去打开 Jupyter 。

如果每次都需要切换,嫌麻烦可以直接修改默认路径。首先通过下列命令查看配置文件的位置
jupyter notebook --generate-config --allow-root
再把配置文件的
## The default URL to redirect to from `/`
#c.NotebookApp.default_url = '/tree'
修改为你需要的路径
## The default URL to redirect to from `/`
c.NotebookApp.default_url = '/tree/Coding'

更换Python内核版本
有时候,电脑里会安装多个版本的 Python 解释器,每个解释器都是独立的。而当 Jupyter 中配置的 Python 版本不是我们所需要的 Python 版本,这时候需要我们手动切换 Jupyter 的 Python 内核版本。
首先查看 Jupyter 中配置的 Python 内核版本,在终端输入如下命令
ipython kernelspec list
则后面对应的路径即为你现在的 Python 内核版本,接下来切换到该目录下,打开这个文件夹下的 kernel.json 文件,修改 Python 解释器的位置并保存即可。查看Python解释器的位置可以通过Visual Studio Code 来查看,也可以通过以下命令来查找。
whereis python

如果不是 root 用户,可能会没有权限对只读文件进行修改,可以采取强制修改保存。
在VIM的命令模式执行
:w !sudo tee %
- w: 表示保存文件
- !: 表示执行外部命令
- tee: linux命令,可以查看linux命令帮助
- %: 在执行外部命令时,%会扩展成当前文件名