Skip to content

Commit b31085e

Browse files
committed
更改第二章所有变量名、函数、类等文本代码
1 parent bbfda16 commit b31085e

13 files changed

+34
-34
lines changed

source/c02/p01_split_string_on_multiple_delimiters.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
----------
1313
解决方案
1414
----------
15-
string对象的 ``split()`` 方法只适应于非常简单的字符串分割情形,
15+
``string`` 对象的 ``split()`` 方法只适应于非常简单的字符串分割情形,
1616
它并不允许有多个分隔符或者是分隔符周围不确定的空格。
1717
当你需要更加灵活的切割字符串的时候,最好使用 ``re.split()`` 方法:
1818

@@ -29,7 +29,7 @@ string对象的 ``split()`` 方法只适应于非常简单的字符串分割情
2929
讨论
3030
----------
3131
函数 ``re.split()`` 是非常实用的,因为它允许你为分隔符指定多个正则模式。
32-
比如,在上面的例子中,分隔符可以是逗号(,),分号(;)或者是空格,并且后面紧跟着任意个的空格。
32+
比如,在上面的例子中,分隔符可以是逗号,分号或者是空格,并且后面紧跟着任意个的空格。
3333
只要这个模式被找到,那么匹配的分隔符两边的实体都会被当成是结果中的元素返回。
3434
返回结果为一个字段列表,这个跟 ``str.split()`` 返回值类型是一样的。
3535

@@ -60,7 +60,7 @@ string对象的 ``split()`` 方法只适应于非常简单的字符串分割情
6060
>>>
6161
6262
如果你不想保留分割字符串到结果列表中去,但仍然需要使用到括号来分组正则表达式的话,
63-
确保你的分组是非捕获分组,形如(?:...)。比如:
63+
确保你的分组是非捕获分组,形如 ``(?:...)`` 。比如:
6464

6565
.. code-block:: python
6666

source/c02/p03_match_strings_with_shell_wildcard.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
----------
66
问题
77
----------
8-
你想使用Unix Shell中常用的通配符(比如*.py, Dat[0-9]*.csv等)去匹配文本字符串
8+
你想使用 **Unix Shell** 中常用的通配符(比如 ``*.py`` , ``Dat[0-9]*.csv`` 等)去匹配文本字符串
99

1010
|
1111
1212
----------
1313
解决方案
1414
----------
15-
fnmatch模块提供了两个函数—— ``fnmatch()`` 和 ``fnmatchcase()`` ,可以用来实现这样的匹配。用法如下:
15+
``fnmatch`` 模块提供了两个函数—— ``fnmatch()`` 和 ``fnmatchcase()`` ,可以用来实现这样的匹配。用法如下:
1616

1717
.. code-block:: python
1818
@@ -42,7 +42,7 @@ fnmatch模块提供了两个函数—— ``fnmatch()`` 和 ``fnmatchcase()`` ,
4242
4343
如果你对这个区别很在意,可以使用 ``fnmatchcase()`` 来代替。它完全使用你的模式大小写匹配。比如:
4444

45-
.. code-block:: python
45+
.. code-block:: python
4646
4747
>>> fnmatchcase('foo.txt', '*.TXT')
4848
False
@@ -80,5 +80,5 @@ fnmatch模块提供了两个函数—— ``fnmatch()`` 和 ``fnmatchcase()`` ,
8080
``fnmatch()`` 函数匹配能力介于简单的字符串方法和强大的正则表达式之间。
8181
如果在数据处理操作中只需要简单的通配符就能完成的时候,这通常是一个比较合理的方案。
8282

83-
如果你的代码需要做文件名的匹配,最好使用glob模块。参考5.13小节。
83+
如果你的代码需要做文件名的匹配,最好使用 ``glob`` 模块。参考5.13小节。
8484

source/c02/p04_match_and_search_text.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
10
3232
>>>
3333
34-
对于复杂的匹配需要使用正则表达式和re模块
35-
为了解释正则表达式的基本原理,假设你想匹配数字格式的日期字符串比如"11/27/2012",你可以这样做:
34+
对于复杂的匹配需要使用正则表达式和 ``re`` 模块
35+
为了解释正则表达式的基本原理,假设你想匹配数字格式的日期字符串比如 ``11/27/2012`` ,你可以这样做:
3636

3737
.. code-block:: python
3838
@@ -170,7 +170,7 @@
170170
<_sre.SRE_Match object at 0x1005d2750>
171171
>>>
172172
173-
最后,如果你仅仅是做一次简单的文本匹配/搜索操作的话,可以略过编译部分,直接使用re模块级别的函数。比如:
173+
最后,如果你仅仅是做一次简单的文本匹配/搜索操作的话,可以略过编译部分,直接使用 ``re`` 模块级别的函数。比如:
174174

175175
.. code-block:: python
176176

source/c02/p05_search_and_replace_text.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
'yep, but no, but yep, but no, but yep'
2222
>>>
2323
24-
对于复杂的模式,请使用re模块中的 ``sub()`` 函数。
25-
为了说明这个,假设你想将形式为"11/27/201"的日期字符串改成"2012-11-27"。示例如下:
24+
对于复杂的模式,请使用 ``re`` 模块中的 ``sub()`` 函数。
25+
为了说明这个,假设你想将形式为 ``11/27/201`` 的日期字符串改成 ``2012-11-27`` 。示例如下:
2626

2727
.. code-block:: python
2828
@@ -32,7 +32,7 @@
3232
'Today is 2012-11-27. PyCon starts 2013-3-13.'
3333
>>>
3434
35-
``sub()`` 函数中的第一个参数是被匹配的模式,第二个参数是替换模式。反斜杠数字比如\3指向前面模式的捕获组号
35+
``sub()`` 函数中的第一个参数是被匹配的模式,第二个参数是替换模式。反斜杠数字比如 ``\3`` 指向前面模式的捕获组号
3636

3737
如果你打算用相同的模式做多次替换,考虑先编译它来提升性能。比如:
3838

source/c02/p06_search_replace_case_insensitive.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
----------
1313
解决方案
1414
----------
15-
为了在文本操作时忽略大小写,你需要在使用re模块的时候给这些操作提供 ``re.IGNORECASE`` 标志参数。比如:
15+
为了在文本操作时忽略大小写,你需要在使用 ``re`` 模块的时候给这些操作提供 ``re.IGNORECASE`` 标志参数。比如:
1616

1717
.. code-block:: python
1818

source/c02/p07_specify_regexp_for_shortest_match.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@
5151
在一个模式字符串中,点(.)匹配除了换行外的任何字符。
5252
然而,如果你将点(.)号放在开始与结束符(比如引号)之间的时候,那么匹配操作会查找符合模式的最长可能匹配。
5353
这样通常会导致很多中间的被开始与结束符包含的文本被忽略掉,并最终被包含在匹配结果字符串中返回。
54-
通过在*或者+这样的操作符后面添加一个?可以强制匹配算法改成寻找最短的可能匹配。
54+
通过在 ``*`` 或者 ``+`` 这样的操作符后面添加一个 ``?`` 可以强制匹配算法改成寻找最短的可能匹配。
5555

source/c02/p08_regexp_for_multiline_partterns.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
[' this is a\n multiline comment ']
3939
>>>
4040
41-
在这个模式中,``(?:.|\n)`` 指定了一个非捕获组
41+
在这个模式中, ``(?:.|\n)`` 指定了一个非捕获组
4242
(也就是它定义了一个仅仅用来做匹配,而不能通过单独捕获或者编号的组)。
4343

4444
|
@@ -47,7 +47,7 @@
4747
讨论
4848
----------
4949
``re.compile()`` 函数接受一个标志参数叫 ``re.DOTALL`` ,在这里非常有用。
50-
它可以让正则表达式中的.匹配包括换行符在内的任意字符。比如:
50+
它可以让正则表达式中的点(.)匹配包括换行符在内的任意字符。比如:
5151

5252
.. code-block:: python
5353

source/c02/p10_work_with_unicode_in_regexp.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
----------
1313
解决方案
1414
----------
15-
默认情况下re模块已经对一些Unicode字符类有了基本的支持
16-
比如,\\d已经匹配任意的unicode数字字符了
15+
默认情况下 ``re`` 模块已经对一些Unicode字符类有了基本的支持
16+
比如, ``\\d`` 已经匹配任意的unicode数字字符了
1717

1818
.. code-block:: python
1919
@@ -27,7 +27,7 @@
2727
<_sre.SRE_Match object at 0x101234030>
2828
>>>
2929
30-
如果你想在模式中包含指定的Unicode字符,你可以使用Unicode字符对应的转义序列(比如\uFFF或者\UFFFFFFF)。
30+
如果你想在模式中包含指定的Unicode字符,你可以使用Unicode字符对应的转义序列(比如 ``\uFFF`` 或者 ``\UFFFFFFF`` )。
3131
比如,下面是一个匹配几个不同阿拉伯编码页面中所有字符的正则表达式:
3232

3333
.. code-block:: python

source/c02/p11_strip_unwanted_characters.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
----------
1313
解决方案
1414
----------
15-
``strip()`` 方法能用于删除开始或结尾的字符。``lstrip()`` 和 ``rstrip()`` 分别从左和从右执行删除操作。
15+
``strip()`` 方法能用于删除开始或结尾的字符。 ``lstrip()`` 和 ``rstrip()`` 分别从左和从右执行删除操作。
1616
默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符。比如:
1717

1818
.. code-block:: python
@@ -63,7 +63,7 @@
6363
'hello world'
6464
>>>
6565
66-
通常情况下你想将字符串strip操作和其他迭代操作相结合,比如从文件中读取多行数据。
66+
通常情况下你想将字符串 ``strip`` 操作和其他迭代操作相结合,比如从文件中读取多行数据。
6767
如果是这样的话,那么生成器表达式就可以大显身手了。比如:
6868

6969
.. code-block:: python

source/c02/p12_sanitizing_clean_up_text.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
'pýtĥöñ is awesome\n'
4343
>>>
4444
45-
正如你看的那样,空白字符\t\f已经被重新映射到一个空格。回车字符\r直接被删除。
45+
正如你看的那样,空白字符 ``\t`` 和 ``\f`` 已经被重新映射到一个空格。回车字符\r直接被删除。
4646

4747
你可以以这个表格为基础进一步构建更大的表格。比如,让我们删除所有的和音符:
4848

@@ -60,7 +60,7 @@
6060
'python is awesome\n'
6161
>>>
6262
63-
上面例子中,通过使用 ``dict.fromkeys()`` 方法构造一个字典,每个Unicode和音符作为键,对于的值全部为None
63+
上面例子中,通过使用 ``dict.fromkeys()`` 方法构造一个字典,每个Unicode和音符作为键,对于的值全部为 ``None``
6464

6565
然后使用 ``unicodedata.normalize()`` 将原始输入标准化为分解形式字符。
6666
然后再调用 ``translate`` 函数删除所有重音符。
@@ -103,7 +103,7 @@
103103
讨论
104104
----------
105105
文本字符清理一个最主要的问题应该是运行的性能。一般来讲,代码越简单运行越快。
106-
对于简单的替换操作,``str.replace()`` 方法通常是最快的,甚至在你需要多次调用的时候。
106+
对于简单的替换操作, ``str.replace()`` 方法通常是最快的,甚至在你需要多次调用的时候。
107107
比如,为了清理空白字符,你可以这样做:
108108

109109
.. code-block:: python
@@ -116,7 +116,7 @@
116116
117117
如果你去测试的话,你就会发现这种方式会比使用 ``translate()`` 或者正则表达式要快很多。
118118

119-
另一方面,如果你需要执行任何复杂字符对字符的重新映射或者删除操作的话,``tanslate()`` 方法会非常的快。
119+
另一方面,如果你需要执行任何复杂字符对字符的重新映射或者删除操作的话, ``tanslate()`` 方法会非常的快。
120120

121121
从大的方面来讲,对于你的应用程序来说性能是你不得不去自己研究的东西。
122122
不幸的是,我们不可能给你建议一个特定的技术,使它能够适应所有的情况。

source/c02/p13_aligning_text_strings.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
>>>
3636
3737
函数 ``format()`` 同样可以用来很容易的对齐字符串。
38-
你要做的就是使用<,>或者^字符后面紧跟一个指定的宽度。比如:
38+
你要做的就是使用 ``<,>`` 或者 ``^`` 字符后面紧跟一个指定的宽度。比如:
3939

4040
.. code-block:: python
4141
@@ -82,7 +82,7 @@
8282
----------
8383
讨论
8484
----------
85-
在老的代码中,你经常会看到被用来格式化文本的%操作符。比如:
85+
在老的代码中,你经常会看到被用来格式化文本的 ``%`` 操作符。比如:
8686

8787
.. code-block:: python
8888
@@ -93,7 +93,7 @@
9393
>>>
9494
9595
但是,在新版本代码中,你应该优先选择 ``format()`` 函数或者方法。
96-
``format()`` 要比%操作符的功能更为强大。
96+
``format()`` 要比 ``%`` 操作符的功能更为强大。
9797
并且 ``format()`` 也比使用 ``ljust()`` , ``rjust()`` 或 ``center()`` 方法更通用,
9898
因为它可以用来格式化任意对象,而不仅仅是字符串。
9999

source/c02/p15_interpolating_variables_in_strings.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,13 @@ Python并没有对在字符串中简单替换变量值提供直接的支持。
124124
'Guido has 37 messages.'
125125
>>>
126126
127-
然而,``format()`` 和 ``format_map()`` 相比较上面这些方案而已更加先进,因此应该被优先选择。
127+
然而, ``format()`` 和 ``format_map()`` 相比较上面这些方案而已更加先进,因此应该被优先选择。
128128
使用 ``format()`` 方法还有一个好处就是你可以获得对字符串格式化的所有支持(对齐,填充,数字格式化等待),
129129
而这些特性是使用像模板字符串之类的方案不可能获得的。
130130

131131
本机还部分介绍了一些高级特性。映射或者字典类中鲜为人知的 ``__missing__()`` 方法可以让你定义如何处理缺失的值。
132-
在SafeSub类中,这个方法被定义为对缺失的值返回一个占位符。
133-
你可以发现缺失的值会出现在结果字符串中(在调试的时候可能很有用),而不是产生一个KeyError异常
132+
在 ``SafeSub`` 类中,这个方法被定义为对缺失的值返回一个占位符。
133+
你可以发现缺失的值会出现在结果字符串中(在调试的时候可能很有用),而不是产生一个 ``KeyError`` 异常
134134

135135
``sub()`` 函数使用 ``sys._getframe(1)`` 返回调用者的栈帧。可以从中访问属性 ``f_locals`` 来获得局部变量。
136136
毫无疑问绝大部分情况下在代码中去直接操作栈帧应该是不推荐的。

source/c02/p18_tokenizing_text.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
4141
master_pat = re.compile('|'.join([NAME, NUM, PLUS, TIMES, EQ, WS]))
4242
43-
在上面的模式中,``?P<TOKENNAME>`` 用于给一个模式命名,供后面使用。
43+
在上面的模式中, ``?P<TOKENNAME>`` 用于给一个模式命名,供后面使用。
4444
4545
下一步,为了令牌化,使用模式对象很少被人知道的 ``scanner()`` 方法。
4646
这个方法会创建一个 ``scanner`` 对象,
@@ -113,7 +113,7 @@
113113
第一点就是你必须确认你使用正则表达式指定了所有输入中可能出现的文本序列。
114114
如果有任何不可匹配的文本出现了,扫描就会直接停止。这也是为什么上面例子中必须指定空白字符令牌的原因。
115115
116-
令牌的顺序也是有影响的。re模块会按照指定好的顺序去做匹配
116+
令牌的顺序也是有影响的。 ``re`` 模块会按照指定好的顺序去做匹配
117117
因此,如果一个模式恰好是另一个更长模式的子字符串,那么你需要确定长模式写在前面。比如:
118118
119119
.. code-block:: python

0 commit comments

Comments
 (0)