markdown 教程与 Jupyter 教程

markdown 教程与 Jupyter 教程

1. markdown教程

1.1 简介

markdown 于 2004 年被提出,在 2012 经过规范化,2017 年提出 GFM 版本,GFM 指 GitHub Flavored Markdown,我们当前使用的版本主要是 GFM。markdown是一种标记语言,类似于 html 语言,它可以转换为 html 文件,本身也兼容 html 语言。markdown 的优势是简单轻量,简单就是最好的。此外,markdown 也可以转换为 word 和 pdf。

注意在书写规范中,中英文和数字相互之间需要加空格,英文标点符号后需要加空格,> 后面需要加空格,数字与 % 和单位之间不用加空格,/ 表示或以及路径分割不需要加空格。

有了 markdown 源码后,通过不同主题或软件可以实现不同效果。markdown 常用的编辑和查看软件有 typora、vscode、mark text 和谷歌插件。其中,typora 是功能最全的,但现在开始收费了,可以使用特殊方法进行安装,它做的最好用,且包含很多新语法;vscode 与 mark text 均为开源免费软件,vscode是集合了 n 多功能,可以通过一个软件实现程序员大部分需求,mark text 可能还含有部分小 bug,例如每次关闭都会提示保存,可以直接去 github 下载安装;谷歌插件仅作为 markdown 文件的查看软件,不能编辑,且支持的特征相对偏少,且插件都很老,功能不全甚至有 bug。此外,还可以使用有道云笔记和 CSDN 进行 markdown 的编辑。

1.2 语法教程

1.2.1 标题

说明:#+空格+内容,最多 6 级标题,第一级一般是题目

效果:1. markdown 教程

1.2.2 粗体/斜体
1.2.2.1 粗体

示例:**粗体内容**

效果:粗体内容

1.2.2.2 斜体

示例:*斜体内容*

效果:斜体内容

1.2.3 列表
1.2.3.1 有序列表

说明:1.+空格+内容 按回车即可

效果:

  1. 苹果
  2. 西瓜
1.2.3.2 无序列表

说明:-+空格+内容 按回车即可

效果:

  • 苹果
  • 西瓜
1.2.3.3 嵌套列表

说明:在下一级直接按 tab 键即可

效果:

  • 苹果
    • 富士苹果
    • 青苹果
1.2.3.4 任务列表

说明:-+空格+[ ]+内容 是未选中任务,-+空格+[x]+内容 是选中任务

效果:

  • 苹果
  • 西瓜
1.2.4 表格

说明:表格格式相对复杂,可以直接看源码,需要说明的是 :---- / ----: / :----: 分别表示左对齐/右对齐/居中,其中 - 表示字符数

效果:

苹果 西瓜 哈密瓜
a b c
1.2.5 插入图片
1.2.5.1 分离插入

说明:通过 !+[描述文字]+(本地位置或网络位置) 实现图片插入,当插入图片失败时,会显示描述文字,本地位置建议使用相对位置,网络位置可以自己找图床上传图片,然后将连接放在这里。PicGo 是图床管理软件,通过 typora+PicGo+图床 可以实现拖拽图片进编辑框后自动上传图床并生成链接。此外,还可以在 CSDN 中进行 markdown 文件的编写,图片直接拖拽进编辑框即可,其会自动上传至 CSDN 且生成链接,即使删除该帖子,链接也依然存在。有道云笔记非会员不能上传本地图片。路过图床网址。在 Jupyter 中的 markdown cell 可以直接集成图片进 ipynb 文件中。

示例:![钢铁侠](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2F9ef9fb77-f3c1-4983-b6f6-66ca051fa84a%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1697617505&t=909247a4cf639d051dec671500274d57)

效果:

markdown 教程与 Jupyter 教程_第1张图片

1.2.5.2 集成插入

说明:以上图片插入方式并没有将图片集成进 markdown 文件中,但通过 base64 编码可以实现集成,用 base64 转码工具把图片转成一段字符串,然后把字符串填到基础格式中链接的那个位置。

  • 基础用法:

  • ![avatar](data:image/png;base64,iVBORw0…)
    这个时候会发现插入的这一长串字符串会把整个文章分割开,非常影响编写文章时的体验。如果能够把大段的 base64 字符串放在文章末尾,然后在文章中通过一个 id 来调用,文章就不会被分割的这么乱了。

  • 高级用法
    比如:

  • ![avatar][base64str]

可以使用 python 将图片转化为 base64 字符串

import base64
f = open('723.png','rb')           # 二进制方式打开图文件
ls_f = base64.b64encode(f.read())  # 读取文件内容,转换为 base64 编码
f.close()
print(ls_f)
1.2.5.3 调整图片尺寸

说明:不管是分离插入还是集成插入的图片尺寸都不可以改变,如果想要改变尺寸,则需要 html 语句

  1. 居中,并指定图片宽度和高度,代码如下:
    html
  2. 居中仅指定宽度(高度按比例缩放),代码如下:
    html
  3. 居中指定相对宽度(原图的百分比),代码如下:
    html
1.2.6 插入公式

插入 Latex 公式,在某些软件中可能默认不支持,需要在设置中打开该功能,typora 就需要在设置中打开,谷歌插件也需要在插件设置中打开,但有些插件是不支持的,Latex 公式语法可以参考 语法

1.2.6.1 行内公式

说明:$公式$

示例:$y = x$

效果: y = x y = x y=x

1.2.6.2 行间公式

说明:两组 $$ 所包含的区域书写 Latex 公式

$$

E=mc^2

$$

效果:

E = m c 2 E=mc^2 E=mc2

1.2.7 代码
1.2.7.1 行内代码

说明:`代码内容`,可以用于强调

效果:代码内容

1.2.7.2 代码块

说明:可以在三个点号之间输入代码,并可以在第一组点号后面选择语言

```语言

```

效果:

print("abc")
1.2.8 下标/上标

插入 Latex 公式,在某些软件中可能默认不支持,需要在设置中打开该功能,typora 就需要在设置中打开,谷歌插件也需要在插件设置中打开

1.2.8.1 下标

说明:通过 Latex 公式 $ _{下标} $ 插入(Latex)

效果: a b c 0 abc_{0} abc0

说明:通过 html 语法 2 插入(html)

效果:abc0

1.2.8.2 上标

说明:通过 Latex 公式 $ ^{上标}$ 插入(Latex)

效果: a b c 2 abc^{2} abc2

说明:通过 html 语法 2 插入(html)

效果:abc2

1.2.9 分割线/删除线
1.2.9.1 分割线

示例:—

效果:


1.2.9.2 删除线

示例:~~删除内容~~

效果:删除内容

1.2.10 引用

说明:>+空格+内容

效果:

被引用的内容

1.2.11 转义

说明:通过 “\” 可以实现字符转义

1.2.12 链接
1.2.12.1 文字链接

说明:[链接文字](http/https网址),Ctrl+点击文字自动跳到网址中

效果:百度

1.2.12.2 引用链接

说明:[链接文字][链接记号];[链接记号]:(http/https网址),以便于某网址被多次引用

效果:

百度

1.2.12.3 标题链接

说明:[锚点内容](#锚点名),锚点内容即为正文中的跳转位置,锚点名即为被跳转的位置,其为任一标题名称,但该语法仅在部分软件中可用,所以尽量少用

效果:[跳转到1. markdown教程](1. markdown教程)

1.2.13 表情符号

说明:语法是 :表情代码:,在 typora 中可以直接使用 contrl+command+空格 进行选择,但该语法仅在部分软件中可用,所以尽量少用

效果:微笑

1.2.14 typora 扩展

以下语法可能仅仅在 typora 中支持,所以不太建议使用

1.2.14.1 网址链接

说明:<无http网址/邮箱>

效果:

1.2.14.2 下标

说明:通过 ~下标~ 实现下标

效果:abc0

1.2.14.3 上标

说明:通过 ^上标^ 实现上标

效果:abc2

1.2.14.4 高亮

说明:通过 ==下标== 实现高亮

效果:abc

1.2.14.5 插入目录

说明:通过 [toc] 语句可以插入目录

2. Jupyter教程

2.1 简介与原理

Jupyter notebook 源于 Fernando Perez 发起的 IPython 项目。IPython 是一种交互式 shell,与普通的 Python shell 相似,但具有一些更高级的功能,例如语法高亮显示和代码补全,还有一些 magic 操作,十分方便。Jupyter notebook 将 IPython 做成了一种 Web 应用,我们可以通过它的基本架构更清楚的了解。Jupyter notebook 是一种 Web 应用,它能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,非常方便研究和教学。在原始的 Python shell 与 IPython 中,可视化在单独的窗口中进行,而文字资料以及各种函数和类脚本包含在独立的文档中。但是,notebook 能将这一切集中到一处,让用户一目了然。
markdown 教程与 Jupyter 教程_第2张图片

可以看到,这里的核心是 notebook 的服务器。用户通过浏览器连接到该服务器,而 notebook 呈现为 Web 应用。用户在 Web 应用中编写的代码通过该服务器发送给内核,内核运行代码,并将结果发送回该服务器。然后,任何输出都会返回到浏览器中。保存 notebook 时,它将作为 JSON 文件(文件扩展名为 .ipynb) 写入到该服务器中。

2.2 安装与界面

最简单的方法就是使用 Anaconda,其发行版附带了 Jupyter notebook。

在 conda 环境下安装 Jupyter notebook 可以使用 conda install jupyter notebook。当然,也可以通过 pip 来安装 pip install jupyter notebook。

启动 notebook 很简单,只需要在终端环境下输入 jupyter notebook, 服务器就会在当前操作的目录下启动。当然你可以建立一些专门用来运行 notebook 的文件夹,尤其对于不同的 Python 版本以及一些项目。

启动后,默认的 notebook 服务器的运行地址是 http://localhost:8888。只要 notebook 服务器仍在运行,你随时都能通过在浏览器中输入 http://localhost:8888 返回到 web 页面中,当然默认端口是可以修改的
markdown 教程与 Jupyter 教程_第3张图片
Jupyter 还有一种打开方式,非常简单,只需要在 vscode 中安装一个插件 Jupyter 即可在 vscode 中新建 ipynb 文件,不需要打开命令窗口运行任何命令,参考。

Jupyter 由两种 cell 组成,分别是 markdown cell 和 code cell,在 markdown cell 中可以像正常 markdown 文件一样进行书写,在 code 中可以像正常编程一样写代码。

注意在 Jupyter 中的 markdown 中,可以直接插入图片,且图片是集成在 Jupyter 文件中的,不像原生 markdown 文件中,图片是分离的,参考。markdown 单元格中的粘贴来的临时图片和代码单元格生成的图片都是以附件(Base64编码)形式直接保存在 ipynb 文件中。但 markdown 单元格中的本地图片将不会保存在 ipynb 文件中,仍然以本地文件形式存储,参考。

在 Jupyter 中的 code 中,通过 Magic 关键字可以实现一些特殊功能,例如测试单元格运行时间,嵌入程序的输出图。Magic 命令的前面带有一个或两个百分号(%%%),分别代表行 Magic 命令和单元格 Magic 命令。行 Magic 命令仅应用于编写 Magic 命令时所在的行,而单元格 Magic 命令应用于整个单元格。

如果要测算整个单元格的运行时间,请使用 %%timeit,如下所示:

markdown 教程与 Jupyter 教程_第4张图片

如果要在 notebook 中嵌入可视化内容,可以说使用 %matplotlib inline,如下所示:

markdown 教程与 Jupyter 教程_第5张图片

2.3 远程登录

既然 Jupyter 是与 CS 形式运行的,那 client 与 server 就不一定非要在同一台机器上,完全可以 server 运行在服务器上,而 client 运行在本地机器上,具体实现过程参考:链接 1 与 链接 2

你可能感兴趣的:(程序开发--基本工具,jupyter,python)