Skip to content

Commit 1059c0a

Browse files
committed
intermediate*.md:整体调整格式,如删除多余空行、整理代码块、修正标点符号。
1 parent 9998b51 commit 1059c0a

File tree

9 files changed

+244
-312
lines changed

9 files changed

+244
-312
lines changed

content/intermediate01.md

Lines changed: 41 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,60 +4,50 @@
44

55
进阶教程对基础教程的进一步拓展,说明Python的细节。希望在进阶教程之后,你对Python有一个更全面的认识。
66

7-
8-
9-
之前我们说了,列表是Python里的一个类。一个特定的表,比如说`nl = [1,3,8]`,就是这个类的一个对象。我们可以调用这个对象的一些方法,比如 `nl.append(15)`
10-
我们要介绍一个新的类,词典 (dictionary)。与列表相似,词典也可以储存多个元素。这种储存多个元素的对象称为容器(container)。
11-
12-
7+
之前我们说了,列表是Python里的一个类。一个特定的表,比如说`nl = [1, 3, 8]`,就是这个类的一个对象。我们可以调用这个对象的一些方法,比如 `nl.append(15)`
8+
我们要介绍一个新的类,词典(dictionary)。与列表相似,词典也可以储存多个元素。这种储存多个元素的对象称为容器(container)。
139

1410
##基本概念
1511

16-
常见的创建词典的方法:
17-
```python
18-
>>>dic = {'tom':11, 'sam':57,'lily':100}
12+
常见的创建词典的方法:
1913

20-
>>>print type(dic)
14+
```python
15+
dic = {'tom':11, 'sam':57, 'lily':100}
16+
print type(dic)
2117
```
22-
词典和表类似的地方,是包含有多个元素,每个元素以逗号分隔。但词典的元素包含有两部分,键和值,常见的是以字符串来表示键,也可以使用数字或者真值来表示键(不可变的对象可以作为键)。值可以是任意对象。键和值两者一一对应。
2318

24-
25-
26-
比如上面的例子中,`tom`对应`11``sam`对应`57``lily`对应`100`
19+
词典和表类似的地方,是包含有多个元素,每个元素以逗号分隔。但词典的元素包含有两部分,键和值,常见的是以字符串来表示键,也可以使用数字或者真值来表示键(不可变的对象可以作为键)。值可以是任意对象。键和值两者一一对应。
2720

28-
21+
比如上面的例子中,`tom`对应`11``sam`对应`57``lily`对应`100`
2922

3023
与表不同的是,词典的元素没有顺序。你不能通过下标引用元素。词典是通过键来引用。
31-
```python
32-
>>>print dic['tom']
33-
34-
>>>dic['tom'] = 30
3524

36-
>>>print dic
25+
```python
26+
print dic['tom']
27+
dic['tom'] = 30
28+
print dic
3729
```
38-
3930

4031
构建一个新的空的词典:
41-
```python
42-
>>>dic = {}
4332

44-
>>>print dic
33+
```python
34+
dic = {}
35+
print dic
4536
```
46-
4737

4838
在词典中增添一个新元素的方法:
49-
```python
50-
>>>dic['lilei'] = 99
5139

52-
>>>print dic
40+
```python
41+
dic['lilei'] = 99
42+
print dic
5343
```
54-
这里,我们引用一个新的键,并赋予它对应的值。
5544

56-
45+
这里,我们引用一个新的键,并赋予它对应的值。
5746

5847
##词典元素的循环调用
48+
5949
```python
60-
dic = {'lilei': 90, 'lily': 100, 'sam': 57, 'tom': 90}
50+
dic = {'lilei':90, 'lily':100, 'sam':57, 'tom':90}
6151
for key in dic:
6252
print dic[key]
6353
```
@@ -66,61 +56,64 @@ for key in dic:
6656

6757
通过`print`的结果,我们可以再次确认,`dic`中的元素是没有顺序的。
6858

69-
7059
词典的遍历也可以同时取出键和值:
60+
7161
```python
7262
for key,value in dict_od.items():
7363
print key , value , '\n'
7464
```
7565

7666
##词典的常用方法
77-
```python
78-
>>>print dic.keys() # 返回dic所有的键
79-
80-
>>>print dic.values() # 返回dic所有的值
8167

82-
>>>print dic.items() # 返回dic所有的元素(键值对)
83-
84-
>>>dic.clear() # 清空dic,dict变为{}
68+
```python
69+
print dic.keys() # 返回dic所有的键
70+
print dic.values() # 返回dic所有的值
71+
print dic.items() # 返回dic所有的元素(键值对)
72+
dic.clear() # 清空dic,dict变为{}
8573
```
86-
8774

8875
另外有一个很常用的用法:
76+
8977
```python
90-
>>>del dic['tom'] # 删除 dic 的‘tom’元素
78+
del dic['tom'] # 删除 dic 的‘tom’元素
9179
```
92-
`del`是Python中保留的关键字,用于删除对象。
9380

94-
81+
`del`是Python中保留的关键字,用于删除对象。
9582

9683
与表类似,你可以用`len()`查询词典中的元素总数。
84+
9785
```python
98-
>>>print(len(dic))
86+
print(len(dic))
9987
```
10088

10189
## 词典排序
90+
10291
前面我们已经谈到,词典是无序的,那么,如果需要词典内容有序,就需要使用排序方法:
10392

104-
词典按`key`排序,排序后的结果存放到列表中:(这里用到了列表推导式)
93+
词典按`key`排序,排序后的结果存放到列表中(这里用到了列表推导式)
10594

10695
```python
10796
listRes = sorted([(k, v) for k, v in dict_rate.items()], reverse=True)
10897
```
10998

11099
词典按`value`排序,排序后的结果存放到列表中:
100+
111101
```python
112-
listRes = sorted([(v, k) for k, v in dict_rate.items()], reverse=True
102+
listRes = sorted([(v, k) for k, v in dict_rate.items()], reverse=True)
113103
```
114104

115105
##总结
116106

117107
词典的每个元素是键值对。元素没有顺序。
108+
118109
```python
119110
dic = {'tom':11, 'sam':57,'lily':100}
120-
121111
dic['tom'] = 99
122112

113+
```python
123114
for key in dic: ...
115+
```
124116

117+
```python
125118
del, len()
126-
```
119+
```

content/intermediate02.md

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,67 @@
11
#Python进阶02 文本文件的输入输出
22

3-
4-
5-
6-
73
Python具有基本的文本文件读写功能。Python的标准库提供有更丰富的读写功能。
84

95
文本文件的读写主要通过`open()`所构建的文件对象来实现。
106

11-
12-
137
##创建文件对象
148

159
我们打开一个文件,并使用一个对象来表示该文件:
10+
1611
```python
1712
f = open(文件名,模式)
1813
```
19-
2014

2115
最常用的模式有:
22-
```python
23-
"r" # 只读
2416

17+
```quote
18+
"r" # 只读
2519
"w" # 写入
26-
2720
"a" # 追加
2821
```
2922

30-
23+
比如:
3124

32-
比如
3325
```python
34-
>>>f = open("test.txt","r")
26+
f = open("test.txt", "r")
3527
```
36-
3728

3829
##文件对象的方法
3930

4031
读取:
32+
4133
```python
4234
content = f.read(N) # 读取N bytes的数据
43-
4435
content = f.readline() # 读取一行
45-
4636
content = f.readlines() # 读取所有行,储存在列表中,每个元素是一行。
4737
```
4838

4939
Pythonic:
5040
读取文件更简洁的写法:
41+
5142
```python
52-
datafile = open('datafile',"r")
43+
datafile = open('datafile', "r")
5344
for line in datafile:
5445
do_something(line)
5546
```
5647

5748
写入:
49+
5850
```python
5951
f.write('I like apple') # 将'I like apple'写入文件
6052
```
61-
6253

6354
关闭文件:
55+
6456
```python
6557
f.close()
6658
```
6759

6860
##总结
69-
```python
70-
f = open(name, "r")
7161

62+
```python
63+
f = open(name, "r")
7264
line = f.readline()
73-
7465
f.write('abc')
75-
7666
f.close()
77-
```
67+
```

content/intermediate03.md

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,73 @@
11
#Python进阶03 模块
22

3-
4-
5-
6-
73
我们之前看到了函数和对象。从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用。
84

9-
模块(module)也是为了同样的目的。在Python中,一个.py文件就构成一个模块。通过模块,你可以调用其它文件中的程序。
10-
11-
5+
模块(module)也是为了同样的目的。在Python中,一个`.py`文件就构成一个模块。通过模块,你可以调用其它文件中的程序。
126

137
##引入模块
148

15-
我们先写一个first.py文件,内容如下:
9+
我们先写一个`first.py`文件,内容如下:
10+
1611
```python
1712
def laugh():
1813
print 'HaHaHaHa'
1914
```
2015

21-
再写一个second.py,并引入`first`中的程序:
16+
再写一个`second.py`,并引入`first`中的程序:
17+
2218
```python
2319
import first
2420

2521
for i in range(10):
2622
first.laugh()
2723
```
28-
在second.py中,我们使用了first.py中定义的`laugh()`函数。
2924

30-
25+
`second.py`中,我们使用了`first.py`中定义的`laugh()`函数。
3126

32-
引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。上面例子中,`first`为引入的模块,`laugh()`是我们所引入的对象。
27+
引入模块后,可以通过`模块.对象`的方式来调用引入模块中的某个对象。上面例子中,`first`为引入的模块,`laugh()`是我们所引入的对象。
28+
29+
Python中还有其它的引入方式:
3330

34-
Python中还有其它的引入方式,
3531
```python
3632
import a as b # 引入模块a,并将模块a重命名为b
37-
38-
from a import myFunc # 从模块a中引入myFunc对象。调用a中对象时,我们不用再说明模块,即直接使用myFunc,而不是a.myFunc。
39-
33+
from a import myFunc # 从模块a中引入myFunc对象。调用a中对象时,我们不用再说明模块,即直接使用myFunc,而不是a.myFunc。
4034
from a import * # 从模块a中引入所有对象。调用a中对象时,我们不用再说明模块,即直接使用对象,而不是a.对象。
4135
```
42-
这些引用方式,可以方便后面的程序书写。
4336

44-
37+
这些引用方式,可以方便后面的程序书写。
4538

4639
##搜索路径
4740

4841
Python会在以下路径中搜索它想要寻找的模块:
4942

50-
程序所在的文件夹
51-
标准库的安装路径
52-
操作系统环境变量`PYTHONPATH`所包含的路径
53-
43+
- 程序所在的文件夹
5444

55-
如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。
45+
- 标准库的安装路径
5646

57-
47+
- 操作系统环境变量`PYTHONPATH`所包含的路径
48+
49+
如果你有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。
5850

5951
模块包
6052

61-
可以将功能相似的模块放在同一个文件夹(比如说`this_dir`)中,构成一个模块包。通过
53+
可以将功能相似的模块放在同一个文件夹(比如说`this_dir`)中,构成一个模块包。通过:
54+
6255
```python
6356
import this_dir.module
6457
```
65-
引入`this_dir`文件夹中的`module`模块。
66-
67-
6858

69-
该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。__init__.py可以是一个空文件
59+
引入`this_dir`文件夹中的`module`模块
7060

71-
61+
该文件夹中必须包含一个`__init__.py`的文件,提醒Python,该文件夹为一个模块包。`__init__.py`可以是一个空文件。
7262

7363
##总结
64+
7465
```
7566
import module
67+
```
7668

69+
```
7770
module.object
78-
79-
__init__.py
8071
```
72+
73+
__init__.py

0 commit comments

Comments
 (0)