初识模块
一、递归
算法:计算一些比较复杂的问题,所采用的在空间上(内存里)或者时间(执行时间)上更有优势的方法
排序:
递归求解二分查找算法:有序的数字集合的查找问题
二、常用模块
模块:py文件,模块是写好了但不直接使用的功能
常用的和某个操作相关的,根据相关性分类分成不同的模块
模块分为三种:
内置模块:安装解释器的时候直接安装的,安装解释器可直接使用
扩展模块:安装解释器没有直接安装的模块,需手动安装
自定义模块:自己写的模块
内置模块
1、collections模块:
Counter:跟踪某一个值出现的次数
defaultdict:带有默认值的字典
from collections import defaultdict
values = [11,22,33,44,55,66,77,88,99,90]
my_dict = defaultdict(list)默认这个字典的value是空列表
for value in values:
if value > 66:
my_dict['k1'].append(value)
else:
my_dict['k2'].append(value)
print(my_dict)
namedtuple模块:生成可以使用名字来访问元素内容的tuple
from collections import namedtuple
point = namedtuple('point',['x','y'])
p = point(1,2)
print(p.x)
print(p.y)
2、时间模块:格林威治时间
print(time.time()) #时间戳时间,英国伦敦时间,1970年1月1日
时间戳-->结构化时间-->格式化时间
格式化时间:用字符串表示的时间
time.strftime('%H:%M:%S')
结构化时间:
time.localtime()
random模块:
sys.modules:放了所有在解释器运行过程中导入的模块名称
一个模块是否能够导入,全看在不在sys.path列表所包含的路径下
sys.atgv:在执行python脚本的时候,可以传递一些参数进来
os模块
re模块
正则表达式:
元字符:对一个字符的匹配创建一些规则
这些规则是在正则表达式中有着特殊意义的符号
re.findall():找所有
re.search():找第一个,返回的值不是一个直接的结果,而是一个内存地址,需要使用.group()取值
如果匹配不上,返回None,就不能group