社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python数据科学实践 | Markdown

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

大家好,基于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
 
1172 次点击