Python--正则表达式,re模块,collections模块,random模块,时间模块

正则表达式
元字符量词(?)
元字符 :
.
w d s W D S

() |
[] [^]
^ $
量词 :
* + ?
{n} ,{n,} ,{n,m}

re模块
怎么调用re模块
查找 : findall search match finditer
分割和替换 :split sub subn
编译 :compile 节省时间
re模块到底用在了几个地方?
量词 :表示匹配0次或1次
在量词之后 :是惰性匹配的标志
分组命名 :(?P<NAME>正则表达式) 引用的时候(?P=NAME)
findall/split 取消分组优先 :(?:正则表达式)
collections模块
怎么调用collections模块
namedtuple 可命名元组
OrderedDict 有序字典
DefaultDict 默认字典
deque 双端队列
Counter 计数器
queue 队列
先进先出的特点


randomd模块:
#随机小数(random,uniform),#随机整数(randent,randrange)#随机选择一个返回(choice)#随机选择多个返回,返回的个数为函数的第二个参数(sample)
#打乱列表顺序(shuffle)
运用场景:手机上,网页上验证码
# 6位/4位数字 —— 验证码
import random
s = ''
for i in range(6):
num = str(random.randint(0,9))
s += num
print(s)

6位数字+字母 —— 验证码
chr(97) --> 字符
res = ''
for i in range(6):
num = str(random.randint(0, 9)) #数字
al_num = random.randint(97,122) #随机小写字母
al_num2 = random.randint(65,90) 随机大写字母
alpha = chr(al_num)
alpha2 = chr(al_num2)
res += random.choice([num,alpha,alpha2])
print(res)
#生成随机验证码
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())


#时间模块
import time #导入时间模块
#时间戳(浮点型时间):
time.time()
print(time.time())
print(time.sleep(1))
#格式化时间 时间字符串
time.strftime("%Y-%m-%d %X")


#格式化时间-----字符串 给人看的
print(time.strftime('%H:%M:%S'))
print(time.strftime('%y/%m/%d'))
print(time.strftime('%Y-%m-%d'))
print(time.strftime('%c'))


print(time.strftime('%c))

#结构化时间 (元组)
print(time.locatime())
# #(2018, 5, 22, 10, 36, 31, 1, 142, 0)

字符串时间<-->结构化时间<--->时间戳时间

时间戳 - 结构化之间的转换
print(time.time())
print(time.localtime(1500000000))
print(time.localtime(1600000000))
print(time.localtime(2000000000))
print(time.localtime(3000000000))
print(time.gmtime(3000000000))

struct_time = time.localtime(3000000000)
# print(time.mktime(struct_time))
ret = time.strftime('%y/%m/%d %H:%M:%S',struct_time)
print(ret)
s_t = time.strptime('2028-5-21','%Y-%m-%d')
print(s_t)
print(time.mktime(s_t))
#结构化时间-->时间戳 
#time.mktime(结构化时间)
time.mktime(time_tuple)
#结构化时间-->字符串时间
#time.strftime("格式定义","结构化时间") 结构化时间参数若不传,则现实当前时间
time.strftime("%Y-%m-%d %X"

#字符串时间-->结构化时间
#time.strptime(时间字符串,字符串对应格式
time.strptime("2017-03-16","%Y-%m-%d")
时间差计算:
1.都转成浮点时间戳2.两个时间戳相减,3.在转回来
import time
true_time=time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
time_now=time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
dif_time=time_now-true_time
struct_time=time.gmtime(dif_time)
print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,
struct_time.tm_mday-1,struct_time.tm_hour,
struct_time.tm_min,struct_time.tm_sec))

原文地址:https://www.cnblogs.com/weilaixiaochaoren/p/9404423.html