王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594
复习
1.正则表达式
1.字符组
2.元字符
\w \d \s 匹配任意字母数字下划线 数字 空格
\W \D \S 匹配非...............................
. 匹配除了换行符的任意字符
\n \t 匹配换行符 table
^ $ 匹配开始和结束
\b 匹配单词结尾
() 分组 对多个字符组整体量词约束
python 分组优先 findall
| 从左到右匹配,匹配上就不继续匹配
[^] 不匹配[]
3.量词
* 匹配0~
+ 匹配1~
? 匹配0~1
{n} 匹配n
{n,} 匹配n~
{n,m} 匹配n~m
4.转义问题
re.findall(r'\\s', r '\s') 遇到特殊字符,想匹配,用r转义
5.惰性匹配
量词后加?
.*?x 一直匹配,遇到x停
2.re模块
findall
返回列表,所有匹配到的项
search
匹配到第一个就返回一个对象,遇不到返回None,
match
从头开始匹配,匹配到第一个就返回
split
分割
sub subn
替换
finditer
返回迭代器
compile
编译
学习内容
1.collections 模块
1.namedtuple
2.队列 先进先出
2.time 模块
3.random 模块
4.os 模块
5.sys模块
代码区
1.正则匹配算式中的整数
import re ret=re.findall("\d+\.\d+|(\d+)", "1-2*(60+(-40.35/5)-(-4*3))")
print(ret)
2.collection模块
# collections 模块
"""
# 可命名元祖
'''
from collections import namedtuple
Point = namedtuple('point', ['x', 'y'])
p1 = Point(1, 2)
print(p1)
# 扑克牌
Card = namedtuple('card',['suit', 'number'])
c1 = Card('Heart', 2)
print(c1)
'''
# 队列
'''
import queue
q1 = queue.Queue()
q1.put([101,1,0])
q1.put(5)
q1.put(0)
print(q1.qsize())
print(q1.get())
print(q1.qsize())
print(q1.get())
print(q1.get())
print(q1.get()) # 阻塞
'''
# 双端队列
'''
from collections import deque
q1 = deque([1, 2])
q1.append('a') # 后面放
q1.appendleft('b') # 前面放
print(q1.pop()) # 后面去
print(q1.popleft()) # 前面取
'''
# 有序字典
'''
from collections import OrderedDict
dic1 = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
dic2 = dict([('a', 1), ('b', 2), ('c', 3)])
print(dic1)
print(dic2)
print(dic1['a'])
'''
#默认值字典
'''
from collections import defaultdict
dic1 = defaultdict(lambda : 5)
print(dic1['k1'])
'''
"""
3.time模块,程序:计算时间差
import time
'''
# time.sleep(1)
# 时间戳
print(time.time())
# 格式化时间
print(time.strftime("%Y-%m-%d %a %j %W %H:%M:%S"))
# 结构化时间
struct_time = time.localtime()
print(struct_time)
''' # t = time.time()
# print(t)
# print(time.localtime(1600000000))
# print(time.gmtime(t)) # print(time.strptime('2018-1-31','%Y-%m-%d'))
# print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) # 计算时间差
'''
start_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
end_time = time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
dif_time = end_time - start_time
struct_dif_time = time.gmtime(dif_time)
print('过去了%d年%d月%d日%d小时%d分钟%d秒'%(struct_dif_time.tm_year-1970,struct_dif_time.tm_mon-1,
struct_dif_time.tm_mday-1,struct_dif_time.tm_hour,struct_dif_time.tm_min,
struct_dif_time.tm_sec))
'''
4.random 模块 程序:验证码
'''
import random
code = random.sample(['1','2','3','4','5','6','7','8','9','0','a','b','c','A','B','D','C'],4)
print(code[0]+code[1]+code[2]+code[3])
'''
# 高级一点
'''
import random
def get_random():
num = str(random.randint(0, 9))
lit = random.randint(65, 90)
Lit = random.randint(97, 122)
lit_r = random.choice([lit, Lit])
return random.choice([chr(lit_r), num]) code = ''
for i in range(4):
code = ''.join([code, get_random()]) print(code)
'''
# 老师答案
'''
import random def v_code(): code = ''
for i in range(5): num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)]) return code print(v_code())
'''
5.os模块和sys模块
'''
import os
print(os.getcwd())
# os.makedirs('dirname1/dirname2')
# os.makedirs('dirname1/dirname3')
# os.removedirs('dirname1/dirname2')
# os.mkdir('dirname')
# os.rmdir('dirname')
print(os.listdir(r'D:\python'))
print(os.stat(r'D:\python/Day19'))
'''
# sys 模块
import sys
print(sys.platform)
print(sys.version)