Python标准库是一组模块,安装的Python都包含它。你现在对类的工作原理已有大致的了解,可以开始使用其他程序员编写好的模块了。可使用标准库中的任何函数和类,为此只需在程序开头包含一条简单的import语句。下面来看模块collections中的一个类——OrderedDict。字典让你能够将信息关联起来,但它们不记录你添加键-值对的顺序。要创建字典并记录其中的键-值对的添加顺序,可使用模块collections中的OrderedDict类。OrderedDict实例的行为几乎与字典相同,区别只在于记录了键-值对的添加顺序。
我们再来看一看第6章的favorite_languages.py示例,但这次将记录被调查者参与调查的顺序:
from collections import OrderedDict
favorite_languages = OrderedDict()
favorite_languages['jen'] = 'python'
favorite_languages['sarah'] = 'c'
favorite_languages['edward'] = 'ruby'
favorite_languages['phil'] = 'python'
for name, language in favorite_languages.items():
print(name.title() + "'s favorite language is " +
language.title() + '.')
我们首先从模块collections中导入了OrderedDict类。我们创建了OrderedDict类的一个实例,并将其存储到favorite_languages中。请注意,这里没有使用花括号,而是调用OrderedDict()来创建一个空的有序字典,并将其存储在favorite_languages中。接下来,我们以每次一对的方式添加名字-语言对(也就是键值对)。我们遍历favorite_languages,但知道将以添加的顺序获取调查结果:
Jen's favorite language is Python.
Sarah's favorite language is C.
Edward's favorite language is Ruby.
Phil's favorite language is Python.
这是一个很不错的类,它兼具列表和字典的主要优点(在将信息关联起来的同时保留原来的顺序)。等你开始对关心的现实情形建模时,可能会发现有序字典正好能够满足需求。随着你对标准库的了解越来越深入,将熟悉大量可帮助你处理常见情形的模块。
动手试一试
9-13使用OrderedDict:
在练习6-4中,你使用了一个标准字典来表示词汇表。请使用OrderedDict类来重写这个程序,并确认输出的顺序与你在字典中添加键-值对的顺序一致。
from collections import OrderedDict
favorite_languages = OrderedDict()
favorite_languages['老李'] = '中文'
favorite_languages['老黄'] = '韩语'
favorite_languages['老陈'] = '日语'
favorite_languages['老许'] = '广东话'
for name, language in favorite_languages.items():
print(name.title() + "'s favorite language is " +
language.title() + '.')
老李's favorite language is 中文.
老黄's favorite language is 韩语.
老陈's favorite language is 日语.
老许's favorite language is 广东话.
9-14骰子:
模块random包含以各种方式生成随机数的函数,其中的randint()返回一个位于指定范围内的整数,例如,下面的代码返回一个1-6内的整数:
from random import randint
x = randint(1,6)
请创建一个Die类,它包含一个名为sides的属性,该属性的默认值为6。编写一个名为roll_die()的方法,它打印位于1和骰子面数之间的随机数。创建一个6面的骰子,再掷10次。创建一个10面的骰子和一个20面的骰子,并将它们都掷10次。
from random import randint
class Die():
"""一次模拟骰子的简单尝试"""
def __init__(self):
self.sides = 6
def roll_die(self):
for i in range(10):
x = randint(1,self.sides)
print(x)
die = Die()
die.roll_die()
D:\test_0001\Scripts\python.exe F:/python/Die.py
2
2
3
5
4
6
3
6
2
3
from random import randint
class Die():
"""一次模拟骰子的简单尝试"""
def __init__(self):
self.sides = 6
def roll_die(self):
for i in range(10):
x = randint(1,self.sides)
print(x)
die = Die()
die.sides = 10
die.roll_die()
D:\test_0001\Scripts\python.exe F:/python/Die.py
8
1
9
10
7
2
1
7
1
3
20面的就把sides的数据改成20就好了。
9-15 Python Module of the Week:
要了解Python标准库,一个很不错的资源是网站Python Module of the Weck。请访问pymotw. com并查看其中的目录,在其中找一个你感兴趣的模块进行探索,或阅读模块collections和random的文档。
类编码风格
你必须熟悉有些与类相关的编码风格问题,在你编写的程序较复杂时尤其如此。
类名应采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。
对于每个类,都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要地描述类的功能,并遵循编写函数的文档字符串时采用的格式约定。每个模块也都应包含一个文档字符串,对其中的类可用于做什么进行描述。
可使用空行来组织代码,但不要滥用。在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类。
需要同时导入标准库中的模块和你编写的模块时,先编写导入标准库模块的import语句,再添加一个空行,然后编写导入你自己编写的模块的import语句。在包含多条import语句的程序中,这种做法让人更容易明白程序使用的各个模块都来自何方。
年轻人总是急于求成,就连等待一匙砂糖彻底溶解的耐心也没有,后悔所带来的苦涩,恰好印证了你曾经有所作为,这一点一滴都将成为点缀人生的各种味道。
python标准库中文版PDF(带章节书签)下载地址
链接:https://pan.baidu.com/s/1wXB0IdBhCx2rIaU4r0Kc5A
提取码:q619
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V5的分享
转载请注明:XAMPP中文组官网 » 百度网盘分享:python标准库中文版PDF下载地址