函数基础知识(8)——模块
1.re模块
正则表达式:是一种规则,和python没有任何关系,RE模块是python和正则的一个接口,封装了正则的一些运算
re元字符:
[]:字符组,匹配字符组中的字符,表示一个位置可能出现的所有可能
.:匹配除了换行符以外的任意字符
^: 以什么开始,在字符组[]中表示匹配除了字符组的字符的其他任何字符
$:以什么结束
\d:[0-9] \D
\w:字母数字下划线 \W
\s:任意空格 \S
\n:换行符
\t:制表符
\b:一个单词的结尾
a|b:匹配字符a或者字符b
():匹配()内的表达式
量词:
*:0次到N次
+:一次到更多次
?:零次到一次
{m,n}重复m到n次
.*?的用法:
. 是任意字符
* 是取 0 至 无限长度
? 是非贪婪模式。
何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:.*?x就是取前面任意长度的字符,直到一个x出现
2.collections模块:都是数据类型
nametuple(‘名称’,[属性list]):生成可以使用名字来访问元素内容的tuple
from collections import namedtuple
Card = namedtuple('Card',['suits','rank'])
c1 = Card('红桃','2')
print(c1.suits)
print(c1.rank)
deque:双端队列,队列的特点先进先出,常用语任务处理
针对的问题主要是列表的插入删除占用时间,在队列的两端进行插入删除则消耗时间少
from collections import deque
q = deque(['a','b','c'])
q.append('x')
q.appendleft('y')
q.pop()
q.popleft()
Orderdict:有序字典,保持字典的有序性,按照字典插入顺序排列,而不是key值排列
from collections import OrderedDict
d = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
for key in d:
print(key)
d['key'] = 'value'
>>>OrderedDict([('a', 1), ('b', 2), ('c', 3), ('key', 'value')])
defaultDict:默认字典,给字典设置一个默认值
from collections import defaultdict
d = dict([('a',1),('b',2)])
print(d)
d = defaultdict(lambda : 'N?A')
d['k1'] = 'hello'
print(d.get('k1'))
print(d['k2'])
Counter:计数器
from collections import Counter
c = Counter('hellowordnihaonishihsuinihaoma')
print(c)
3.time模块
时间戳:time.time()
结构化时间time.localtime(时间戳)本地时间
time.gmtime(时间戳)英国时间,错8个时区
字符串时间:time.strftime('%Y-%m-%d %H-%M-%S', time.localtime())
time.strptime('2017-9-11 08-30-00', '%Y-%m-%d %H-%M-%S')
字符串时间——>结构化时间——>时间戳
字符串时间<——结构化时间<——时间戳
4.random模块
random.randint()随机整数
random.choice()随机选择一个随机数
random.sample()随机列表
random.shuffle()打乱次序,洗牌用
5.sys模块
sys.argv
6.os模块
7.序列化
json:转化成字符串,最常用的,其他语言支持的
json.dumps()
json.loads()
json.dump()
json.load()
pickle
dump(object, file) dumps(object) -> string load(file) -> object loads(string) -> object
shelve:只有一个方法,写入字典形式的
file = open(filename)
shelve.open(file)
file[key] = value

浙公网安备 33010602011771号