Python 模块III(time,random等)

1.今日大纲

  1. 规范化开发
  2. time模块
  3. datetime模块
  4. random模块

2.具体内容

  1. 规范化开发

  1. time模块

    • 表示时间的三种方式:

      • 时间戳:

        • 通常来说,表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,float类型
      • 时间元组(struct_time):

        • 共有9个元素(年,月,日,时,分,秒,一年中第几周,一年中第几天)

      • 格式化时间字符串

        python中时间日期格式化符号:
        
        %y 两位数的年份表示(00-99)
        %Y 四位数的年份表示(000-9999)
        %m 月份(01-12)
        %d 月内中的一天(0-31)
        %H 24小时制小时数(0-23)
        %I 12小时制小时数(01-12)
        %M 分钟数(00=59)
        %S 秒(00-59)
        %a 本地简化星期名称
        %A 本地完整星期名称
        %b 本地简化的月份名称
        %B 本地完整的月份名称
        %c 本地相应的日期表示和时间表示
        %j 年内的一天(001-366)
        %p 本地A.M.或P.M.的等价符
        %U 一年中的星期数(00-53)星期天为星期的开始
        %w 星期(0-6),星期天为星期的开始
        %W 一年中的星期数(00-53)星期一为星期的开始
        %x 本地相应的日期表示
        %X 本地相应的时间表示
        %Z 当前时区的名称
        %% %号本身
        

      import time
      
      #(线程)推迟指定的时间运行,单位为秒
      time.sleep(2)
      
      #时间戳
      time.time()
      
      #格式化时间字符串类型:
      print(time.strftime('%y-%m-%d %H:%M%S'))
      ret = time.strftime('%y{}%m{}%d{} %H:%M%S')
      print(ret.format('年','月','日'))
      
      #时间元组
      print(time.localtime())
      #time.struct_time(tm_year=2019, tm_mon=12, tm_mday=9, tm_hour=16, tm_min=7, tm_sec=16, tm_wday=0, tm_yday=343, tm_isdst=0)
      
      
      #几种格式之间的转换
      
      #时间戳--->格式化时间
      timestamp = time.time()
         #时间戳转化成结构化时间
      st = time.localtion(timestamp)
         #结构化时间转化成格式化时间
      ft = time.strftime('%y-%m-%d %H:%M%S',st)
      print(ft)
      
      #格式化时间--->时间戳
      ft = time.strftime('%y-%m-%d %H:%M%S')
         #格式化时间转化成结构化时间
      st = time.strptime(ft,'%y-%m-%d %H:%M%S')
         #结构化时间转化成时间戳
      timeatamp = time.mktime(st)
      print(timeatamp)

      #计算时间差
      import time
      true_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
      now_time = time.mktime(time.strptime('2017-12-21 12:25:31','%Y-%m-%d %H:%M:%S'))
      dif_time = now_time - true_time
      #将时间戳转化成元组时间
      struct_time = time.gmtime(dif_time)
      print(f'过去了{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}秒')
      
  2. datetime模块

    • 可直接调整到指定的:年,月,日,时,分,秒等
    • 将时间戳转化成时间
    import datetime
    
    #现在的时间
    time_now = datetime.datetime.now()
    print(time_now)
    
    #只能调整的字段:weeks,days,hours,minutes,seconds
    print(time_now + datetime.timedalta(weeks = 3))
    print(time_now + datetime.timedalta(weeks = 13))
    
    #可直接调整到指定的,年,月,日,时,分,秒,等
    print(time_now.replace(year = 1979,month = 12,day = 12))
    
    #将时间戳转化成时间
    print(datetime.date.fromtimestamp(4456787654))
  3. random模块

    import random
    
    #大于0小于1之间的   小数
    print(random.random())
    
    #大于1小于6的  小数
    print(random.uniform(1,6))
    
    #随机整数
    #大于等于1且 小于等于 5的  整数
    print(random.randint(1,5))
    #大于等于1且 小于 10的 奇数
    print(random.randint(1,10,2))
    
    #随机选择一个返回(可加参数,参数为返回的个数,以列表返回)
    print(random.choice([1,24,'qww','rrr']))
    print(random.sample([['one','two','erf','rt'],3]))
    
    #打乱列表的顺序
    item = [i for i in range(5)]
    random.shuffle(item)
    print(item)
    • 生成随机4位验证码
    import random
    code = ''
    def v_code():
     for i in range(4):
             num = random.randint(1,9)
         letter = chr(random.randint(65,90))
         ret = random.choice([num,letter])
         code = ''.join(code,str(ret))
      return code
    ret = v_code()
    print(ret)

猜你喜欢

转载自www.cnblogs.com/xiaohei-chen/p/12012126.html