读《python语言及其应用》做的笔记
目的:了解模块的概念和构成方式,模块的导入,包, 标准模块,以及几个常用的模块。
模块
关键字 import
导入模块
1)import report, 运行report.get_descripation()
2)from random import choice, 运行choice(possibilities)
也可以ramdom.choice(possibilities)
使用别名导入模块
import report as wr
wr.get_descripation()
导入模块的一部分
eg:
1)from report import get_descripation()
2)from report import get_descripation as do_it
模块搜索路径
import sys
for place in sys.path
print(place)
第一个匹配到的模块会先被使用。
包
把多个模块组织成文件层次,称之为包。
在文件目录下添加一个文件: init.py,把该目录作为一个包。
这个文件可以是空的。
python标准库
python同时提供了官方文档和使用指南。
在python官网: https://wiki.python.org/moin/PythonBooks
常用的标准模块
1)
读取字典中不存在的键的值会抛出异常。使用字典函数get()返回一个默认值会避免异常发生。
函数setdefault()类似于get(),当键不存在时它会在字典中添加一项。
如果键不在字典中,新的默认值会被添加进去。
如果师徒把一个不同的默认值赋给已经存在的键,不会改变原来的值,仍将返回初始值。
defaulutdict()也有同样的用法,但在创建字典时,对每个新的键都会指定默认值。
它的参数是一个函数。它返回赋给缺失键的值。
可以使用int(), list(), dict()返回默认空的值,
int() 返回 0, list()返回一个列表, dict()返回一个字典。
也可以使用lambda来定义默认值的函数:
bestiary = defaultdict(lambda: 'Huh?')
bestiary['E']
'Huh?'
2)
使用Counter()计数
计数器
3)
deque双端队列,同时具有栈和队列的特征。可以从序列的任何一端添加或删除项。
反向切片的应用。
4)
使用itertools迭代代码结构
import itertools
for item in itertools.chain([1, 2], ['a', 'b']):
print(item)
...
...
1
2
a
b
itertools模块有很多其他的函数,有一些可以用在需要节省时间的组合和排列问题上。
5)
使用pprint()友好输出
pprint()尽量排列输出元素从而增加可读性。