Py学习  »  Python

Python数据科学实践 | Markdown

狗熊会 • 4 年前 • 936 次点击  
     ▼
更多精彩推荐,请关注我们

大家好,基于Python的数据科学实践课程第五期又到来了,大家尽情学习吧。本期内容主要由春艳同学与政委联合推出。

上一节我们其实主要介绍了Jupyter Notebook的基本结构。其中最重要的部分就是在Jupyter Notebook中使用单元格。而除了最常用的代码单元格之外,标记(Markdown)单元格也是Notebook的一大特色。本节主要从几个方面简单介绍markdown单元格的使用,更详细的Markdown使用方式可以参考其官方文档说明。


Markdown简介


1
入门简介

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。同时Markdown也是一个Web编写者常用的text-to-HTML工具,也就是说,它允许我们使用易阅读、易编写的纯文本格式进行编写,然后将其转换为结构有效的XHTML(或HTML)。

因此,所谓“Markdown”,其实有两个部分,一是纯文本的格式化语法,二是将纯文本格式转换为HTML的软件工具。这里我们主要对Markdown的语法进行说明。

为了提高可阅读性,Markdown的语法完全由标点字符组成,并且这些标点字符在经过精心挑选之后,与其语法指代的含义有所对应。例如,一个单词周围的星号实际上是表明强调,Markdown列表也对应于实际的列表。

Markdown可以内联HTML,它并不是HTML的替代品,甚至有明显的差别。它的语法非常小,仅对应一小部分的HTML标记。HTML是一种发布格式,而Markdown是一种写作形式。因此,Markdown的格式化语法仅解决可以用纯文本传达的问题。而对于Markdown语法未涵盖的标记,我们只需直接使用HTML。

2
基础语法

对Markdown基础语法的介绍包含以下内容:

  • 段落和换行

  • 标题

  • 列表

  • 引用

  • 特殊文本

  • 特殊格式

2.1  段落和换行

一个 Markdown 的段落是由一个或多个连续的文本行组成的,它前后需要有一个以上的【空行】。普通的段落不应使用【空格】【制表符】来缩进。

Markdown允许段落内的强迫换行,可以通过在需要换行处插入两个【空格】然后按【Enter】键来实现。

例1  段落和换行

1段落一的第一行  
2段落一的第二行
3
4段落二

图1 段落和换行的运行结果

2.2  标题

Markdown支持两种样式的标题,Setext样式和atx样式,其中atx样式更为常用。

Setext样式的标题是通过给标题内容使用【=】(第一级标题)和【-】(第二级标题)加“下划线”的方式来实现。

例2  Setext样式的标题

1标题一
2=====
3
4标题二
5-----

注:只要【=】【-】数量有两个及以上均可实现标题格式。

atx样式的标题则是通过在行的开头使用1-6个【#】字符再加上一个【空格】分别实现标题的1-6级别。另外,在工具栏的下拉选项中,如果选择标题单元格选项,那么该单元格中会自动出现一个【#】加上【空格】,也就是atx样式的一级标题格式。

例3  atx样式的标题

1# 标题一
2## 标题二

上两种样式的运行结果是相同的。

图2  标题运行结果

2.3  列表

列表分为有序列表和无序列表两种。有序列表使用数字加上一个英文的句点加上空格表示,无序列表则可以使用星号【*】、【+】或是【-】再加上空格表示。

当然,通过在次级列表前面加上四个【空格】【制表符】我们也可以实现列表的嵌套使用。

例4  列表

 11. 有序列表1
2  1. 有序列表1.1
3  2. 有序列表1.2
42. 有序列表2
53. 有序列表3  
6
7无序列表1
8  * 无序列表1.1
9  * 无序列表1.2
10无序列表2
11无序列表3

图3  列表运行结果

注:不论在有序列表的标记上使用的数字是什么,它都会从第一行列表的数字开始逐个向下计数,也就是说,即使我们输入以下代码,也会得到图2中有序列表部分的相同结果。

11. 有序列表1
2 1. 有序列表1.1
3 1. 有序列表1.2
49. 有序列表2
55. 有序列表3 

2.4  引用

Markdown中对文字的引用通过【>】来实现。引用同样可以嵌套使用,的数量表示了引用的嵌套层级。另外,引用的区块里也可以包含有别的Markdown格式,例如标题、列表等。

例5  引用

1>引用段落1
2>>引用段落1.1
3
4>
### 引用段落2标题
5* 无序列表1
6* 无序列表2

图4  引用运行结果

2.5  特殊文本

一些常用的表示文本强调的特殊文本格式如加粗、斜体、删除线等可以分别通过在需要强调的文字两端加不同数量的【*】、【_】【~】来实现。

例6  特殊文本

1*斜体1*  
2_斜体2_  
3**粗体1**  
4__粗体2__  
5***粗斜体1***  
6___粗斜体2___  
7~~加删除线~~

图5  特殊文本运行结果

2.6  特殊格式
  • 分隔线:在一个空白行中输入三个及以上的【*】或者【-】或者【_】,除了符号之间可以插入空格外,该行内不能有其他内容。

  • 对齐方式:在需要对齐的文本内容前面加上【

    】,后面加上

    。基本格式为

    文本内容

    ,左、中、右对齐时把【orientation】改成对应的【left】、【center】、【right】即可。

  • 加下划线:在需要加下划线的文本内容前面加上【】,后面加上【】,基本格式为文本内容

  • 特殊字符:在特殊字符之前加【\】可以插入一些用于构成Markdown语法的特殊标点符号。

例7  特殊格式

1***
2<p style="text-align: left" > 左对齐 p>
3<p style="text-align: center" > 居中 p>
4<p style="text-align: right" > 右对齐 p>
5
6<u>加下划线u>  
7
8\*文本前加星号

图6  特殊格式运行结果

3
扩展语法

对Markdown扩展语法的介绍主要包括以下内容:

  • 插入代码

  • 插入表格

  • 插入链接

  • 插入图像

  • 插入LaTeX公式

3.1  插入代码

代码的插入分行内插入和代码块插入两种。当需要行内插入时,直接将代码用单引号括起来即可;当插入代码块时,有两种方式可供选择。

一是在代码块第一行开头输入四个【空格】或是一个【制表符】;二是使用三个反引号【```】在代码块前后将其框起来。另外,当需要代码高亮时,可以在代码块之前的【```】后面加入代码语言。需要注意的是,插入代码块之前需要至少一个空行。借用例1.2-3-3中的代码块来进行如下示例:

例8  插入代码

图7  插入代码运行结果

3.2  插入表格

插入表格时,用【|】表示单元格边界,在表格标题行下方插入一行同样列数的【-】,每个单元格中的【-】数量可以为任意个。Notebook中表格会自动对齐,有良好的格式。同时,为了精简表格的样式,可以省略每行首尾单元格靠表格边框的【|】。与插入代码块一样,插入表格前至少需要一个空行。

例9  插入表格

 1完整表格格式
2
3|学号|姓名|分数|
4|--|--|--|
5|小明||75|
6|小红||79|
7|小陆||92|
8
9精简表格格式
10
11学号|姓名|分数
12 -|-|-
13小明|男|75
14小红|女|79
15小陆|男|92

图8  插入表格运行结果

3.3  插入链接

要在文本中插入链接有三种方式:

  • 行内式:用【方括号】来标记链接的文字,然后在【方括号】后面紧接着【圆括号】并插入网址链接即可,如果还想要加上链接的title文字,可以在网址后面用【双引号】把title文字包起来。

  • 参考式:用【方括号】来标记链接的文字,在【方括号】后再接上另一个【方括号】,里面填入用以辨识链接的标记,然后在文件的任意处把这个标记的链接内容定义出来。链接内容的格式为:带有辨识标记的【方括号】加上一个【冒号】加上一个以上的【空格】或【制表符】加上链接的网址,然后可以选择性地加上title内容,用【单引号】、【双引号】或是【括弧】包着。

  • 自动链接:用【】把网址链接包起来,最终直接显示网址链接。

例10  插入链接

 1**行内式插入链接:**  
2行内式超链接1[百度](http://www.baidu.com)  
3行内式超链接2[百度](http://www.baidu.com "悬停显示百度")  
4
5**参考式插入链接:**  
6常用的搜索引擎有[谷歌] [1] [雅虎] [2] 和[百度] [3].  
7
8  [1]: http://google.com/        "谷歌"  
9  [2]: http://search.yahoo.com/  '雅虎'  
10  [3]: http://www.baidu.com    (百度)    
11
12**自动链接:**  
13<http:// www.baidu.com/>

图9  插入链接运行结果

3.4  插入图像

插入图像的方式有两种,行内式和参考式。与插入链接的方式非常类似,只需要在插入链接的方式前面加上【感叹号】即可。

例11  插入图像

1**行内式插入Jupyter logo:**
2![Jupyter logo](http://jupyter.org/assets/main-logo.svg "Jupyter")
3
4**参考式插入Jupyter logo:**
5![Jupyter logo][logo]
6
7[logo]:http://jupyter.org/assets/main-logo.svg "Jupyter"

图10  插入图像运行结果

3.5  插入LaTeX公式

Notebook里面插入LaTeX公式的用法有很多,Notebook的官方文档里也给出了许多例子。这里只作简要的介绍。

  • 插入行内公式:在公式两边都用【$】包起来。

  • 插入整行公式:在公式两边都用【$$】包起来。

例12  插入LaTeX公式

1**插入行内公式:**  
2质能守恒方程的方程式是: $E=mc^2$
3
4**插入整行公式:**  
5$$\sum_ {i=1}^n a_i=0$$
6$$f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$
7$$\sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k}$$

图11  插入公式运行结果


好了今天就讲到这里。我们的作业是如下内容:

  • 打开豆瓣搜索一部你喜欢的电影。

  • 利用Jupyter Notebook给这个电影写影评。

  • 影评包括,你为什么喜欢这部电影的文本,尝试多种标题,有一定层次的叙述。

  • 尝试把电影海报插入。

  • 尝试给电影参演演员制作一个表格。

  • 尝试插入一定的外部链接在文本中。

  • 尝试引用其中你最喜欢的台词作为结尾。


往期精彩回顾
初步搭建数据科学工作环境

Conda的使用

Spyder入门

Jupyter入门


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/35244
 
936 次点击