zoukankan      html  css  js  c++  java
  • 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))

  • 相关阅读:
    删除表中存在多条相同记录的方法
    .Net与设计模式之笔记一
    再来一个莫名其妙的错误(asp.net)
    水晶报表的5种表格设计模式(转)
    【web标准设计】学习、提高、欣赏网站推荐
    UML 对象模型图阅读指南 (转)
    attachEvent传递给其handler的一个默认参数
    ASP.NET2.0 在head中添加了代码块后出现的问题
    js技巧转义符"\"的妙用(转)
    VSS新建项目后导致项目组成员不能打开解决方案的解决方法
  • 原文地址:https://www.cnblogs.com/weilaixiaochaoren/p/9404423.html
Copyright © 2011-2022 走看看