zoukankan      html  css  js  c++  java
  • 模块3

    一、time模块

    1. 时间戳(time)

        定义:时间戳表示从1970年1月1日00:00:00开始按秒计算的偏移量

    time_stamp = time.time()
    print(time_stamp, type(time_stamp))
            
    输出:
    1569652399.4683974 <class 'float'>
    1. 格式化时间(strftime)

      定义:普通的字符串格式的时间

    format_time = time.strftime("%Y-%m-%d %X")
    print(format_time, type(format_time))
            
    输出:
    2019-09-28 14:35:51 <class 'str'>
    1. 结构化时间(localtime)

      定义:元组共有9个元素共九个元素,分别为(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

    print(time.localtime())
    
    输出:
    time.struct_time(tm_year=2019, tm_mon=9, tm_mday=28, tm_hour=14, tm_min=40, tm_sec=12, tm_wday=5, tm_yday=271, tm_isdst=0)

     

    二、datetime模块

    1. 返回当前时间(datetime.now)

    print(datetime.datetime.now())
    
    输出
    2019-09-28 14:44:15.995998
    1. 进行时间加减(timedelta)

    print(datetime.datetime.now() + datetime.timedelta(3))
        
    输出
    2019-10-01 19:19:50.101597

    三、random模块

    1. 大于0且小于1的随机小数(random)

    print(random.random())
        
    输出
    0.42866657593385415
    1. 大于等于1且小于等于3之间的随机整数(randint) 

    print(random.randint(1, 3))
        
    输出
    3
    1. 大于等于1且小于3之间的整数(randrange) 

    print(random.randrange(1, 3))
        
    输出
    2
    1. 列表内的任意一个元素(choice)

    print(random.choice([1, '23', [4, 5]]))
        
    输出
    [4, 5]
    1. 打乱列表的顺序(shuffle) 

    lis = [1, 3, 5, 7, 9]
    random.shuffle(lis)
    print(lis)
    
    输出
    [9, 1, 5, 7, 3]
    1. 列表元素任意n个元素的组合(sample) 

    l = [1, 2, 3, 4, 6, 12]
    print(random.sample(l,3))
        
    输出
    [2, 1, 3]
    1. 大于1小于3的小数(uniform)

    print(random.uniform(1, 3))
        
    输出
    2.4500257036462445

    四、hashlib和hmac模块

    1. hashlib模块的特点

      • 传入的内容一样,得到的hash值一样,可用于非明文密码传输时密码校验。

      • 不能由hash值反解成内容,即可以保证非明文密码的安全性。

      • 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的,可以用于对文本的哈希处理。

    2. hash模块加密

    import hashlib
        
    m = '123'
    cipher = hashlib.md5()
    cipher.update(m.encode('utf-8'))
    print(cipher.hexdigest())
        
    输出
    202cb962ac59075b964b07152d234b70
    1. hmac模块特点

      • hmac.new括号内指定的初始key一样

      • 无论update多少次,校验的内容累加到一起是一样的内容

     

      4. hmac模块加密

    import hmac
        
    m = '123'
    cipher = hmac.new('jiami'.encode('utf-8'))
    cipher.update(m.encode('utf-8'))
    print(cipher.hexdigest())
        
    输出
    997d94bd89501257b0bbebf651c806b4

     

    五、typing模块

    1. typing模块的作用

      • 类型检查,防止运行时出现参数和返回值类型不符合

      • 作为开发文档附加说明,方便使用者调用时传入和返回参数类型

      • 该模块加入后不影响程序的运行,不会报正式的错误,只有提醒。

    2. typing模块的使用

     

    from typing import List, Tuple, Dict
        
        
    def add(a: int, string: str, f: float,b: bool) -> Tuple[List, Tuple, Dict, bool]:
        list1 = list(range(a))
        tup = (string, string, string)
        d = {"a": f}
        bl = b
        return list1, tup, d, bl
        
        
    print(add(5, "hhhh", 2.3, False))
        
    输出
    ([0, 1, 2, 3, 4], ('hhhh', 'hhhh', 'hhhh'), {'a': 2.3}, False)

     

    六、re模块

    1. 正则表达式

      • 字符

    元字符 匹配内容
    . 匹配除换行符以外的任意字符
    w 匹配字母或数字或下划线
    s 匹配任意的空白符
    d 匹配数字
    W 匹配非字母或数字或下划线
    S 匹配非空白符
    D 匹配非数字
    匹配一个换行符
    匹配一个制表符
    ^ 匹配字符串的开始
    $ 匹配字符串的结尾
    a|b 匹配字符a或字符b
    () 匹配括号内的表达式,也表示一个组
    […] 匹配字符组中的字符
    匹配除了字符组中字符的所有字符
      • 量词
    量词 用法说明
    * 重复零次或更多次
    + 重复一次或更多次
    重复零次或一次
    {n} 重复n次
    {n,} 重复n次或更多次
    {n,m} 重复n次到m次

     

     

      2. 贪婪匹配与非贪婪匹配

      • 贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配。

      • 加上?为贪婪匹配模式转为非贪婪匹配模式,会匹配尽量短的字符串。

     

      3. re模块下的常用方法

      • findall:返回所有满足匹配条件的结果,放在列表里

    res = re.findall('a', 'eva egon yuan')
    print(res)
            
    输出
    ['a','a']
      • search:找到第一个匹配,然后返回一个包含匹配信息的对象

    ret = re.search('a', 'eva egon yuan').group()
    print(ret)
            
    输出
    a
      • match:在对象开始处匹配,返回包含匹配信息的对象

    ret = re.match('a', 'abc').group()print(ret)
            
    结果 :
    a
      • split:先按‘a’分割得到‘ ’和‘bcd’,再对‘ ’和‘bcd’分别按照‘b’分割

    ret = re.split('[ab]', 'abcd') 
    print(ret)
    
    输出
    ['', '', 'cd']
      • sub:将数字替换成‘ ’,参数3表示替换3个

    ret = re.sub('d', ' ', 'yuan1hua2huo3', 3)
    print(ret)
            
    输出
    yuan hua huo

     

  • 相关阅读:
    [SQL]触发器把自增ID的值赋值给另外一个字段
    [SQL]T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
    [二维码开发]二维码开发入门级demo
    [sql]sql函数coalesce返回第一个非空的值
    [编程小技巧]Notepad++中如何实现文本对比功能?
    [ExcelHome]VLOOKUP的别样用法
    [ExcelHome]15个常用的Excel函数公式,拿来即用
    [ExcelHome]学习Excel的网站
    Permutations
    Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/binyuanxiang/p/11604873.html
Copyright © 2011-2022 走看看