zoukankan      html  css  js  c++  java
  • 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)
      
      • 生成随机验证码
      def v_code(amount):
          code = ''
           for i in range(amount):
               num = random.randint(1,9)
               upper_char = chr(random.randint(65,90))
               lower_char = chr(random.randint(97,122))
               ret = random.choice([num,lower_char,upper_char])
               code = ''.join(code,str(ret))
           return code
       ret = v_code(4)
       print(ret)
      
  • 相关阅读:
    FFmpeg编程(二)FFmpeg中级开发
    Oracle锁表与解锁 对象锁与解锁
    index_combine and index_john
    oracle hint
    SAR
    组播IP地址
    Linux下使用tc(Traffic Control) 流量控制命令模拟网络延迟和丢包
    Linux服务器丢包故障的解决
    linux man page sections
    微服务架构统一安全认证设计与实践
  • 原文地址:https://www.cnblogs.com/xiaohei-chen/p/12012126.html
Copyright © 2011-2022 走看看