zoukankan      html  css  js  c++  java
  • 【Python】随机模块random & 日期时间のtime&&datetime

    ■ random

        顾名思义,random提供了python中关于模拟随机的一些方法。这些方法都一看就懂的,不多说了:

        random.random()    返回0<n<=1的随机实数

        random.uniform(a,b)    返回a<n<=b的随机实数

        random.randrange([start],stop,[step])    返回序列range(start,stop,step)中随机一项

        random.choice(seq)    返回序列中随机一项

        random.sample(seq,n)    返回序列中n个随机且独立的项组成列表

        random.shuffle(seq)    打乱序列顺序(原地变化,相当于s.reverse()这种,seq本身被打乱而不返回值)

    ■ time

        获得当前时间,操作时间,从字符串里读取时间,将时间转化为字符串等等

        时间的表示方法有很多种,比如:

          字符串(最易懂的形式)

          实数(表示当前时刻距离1970年1月1日0点0分0秒经过的秒数,即时间戳)

          元组,比如(2008,1,21,12,2,56,0,21,0),各个字段的意义分别是 年,月,日,时,分,秒,周几(取值范围0-6),儒历日(一年中的第几天,1-366),夏令时(0或1或-1)

        一些time模块的方法如下:

          time.asctime([tuple])    将元组转化为字符串,若不给出元组就以当前时间为参数,如(2016,9,10,10,58,31,5,xxx(忘记掉了),0) ==> Sat Sep 10 10:58:31 2016

          time.localtime([secs])    将秒数时间戳转化为日期元组,不填参数也是以当前时间为准

          time.mktime(tuple)    将元组转化为秒数时间戳,于localtime相反

          time.sleep(secs)    暂停整个进程secs秒时间,很多地方有用!

          time.strptime(string)    将字符串解析为时间元组,和asctime相反,而字符串格式要求像asctime输出的那样。。

          time.time()    生成秒数时间戳

          time.strftime(format,tuple)    根据format指定的格式来讲元组转化成字符串,如strftime("%y-%m-%d %H:%M:%S",asctime())

        几种日期格式转化示意图:

          字符串 ==(strptime)==> 日期元组 ==(mktime)==>时间戳

          时间戳 ==(localtime)==>日期元组 ==(asctime,strftime)==> 字符串

        * 字符串和元组仅仅只是对时间做一个记录而已,并不会对日期时间的正确性做校验(比如星期几是否匹配某个日期等),所以应尽量用time提供的方法来创建时间表示,而不是自己手写一个时间元组之类的。。这样可以减少这种错误。

    ■ datetime

      相比于time模块,datetime更加直观简洁,同时它也已经成为python的内建模块了

      datetime内置以下几个类,分别用于处理各个对应的时间日期要素

      ●  datetime.date

      表示日期的类,常用属性有year,month,day

      ●  datetime.time

      表示时间的类,常用属性有hour,minute,second,microsecond

      ●  datetime.datetime

      表示日期和时间

      ●  datetime.timedelta 

      表示两个时间的间隔,在构造这个类的对象时可以选择参数days,minutes,seconds和miliseconds这些。不能用months这些更高的单位

      ⑴  date类

      D = datetime.date(年,月,日) 可以创建出一个date类对象,除此之外,还可以用D = datetime.date.today()来返回一个今天的date对象以及datetime.date.fromtimestamp(...)根据时间戳来生成一个date对象

      date类默认的打印方法是YYYY-MM-DD

      date类可调用的一些方法:

        datetime.date.timetuple()    生成time tuple

        (前略).weekday()    返回星期几(取值0-6)

        .isoworkday()    返回星期几(取值1-7)

        .isoformat()    返回标准格式的YYYY-MM-DD的字符串

        .strftime(format)    根据指定的格式返回日期字符串

      *datetime.date对象之间可以比大小,date对象相减其差值是一个timedelta对象

      ⑵  time类

      time 由 time(23,59,59,999999)构成

      time.isoformat()    给出"HH:MM:DD"格式的时间字符串

      time.strftime(format)    根据自定义格式给出时间字符串

      和date类一样,time也可以比大小,相减

      ⑶  datetime类(这个是datetime.datetime,不要搞错

      datetime类把date类和time类整合到一起,其构造方法是datetime(年,月,日[,时[,分[,秒]]])

      datetime.now()    返回当前时间的datetime对象

      datetime.combine(date,time)    组合一个date对象和一个time对象

      datetime.strptime(string,format)    将格式字符串转化为datetime对象

      此外 一些date类和time类的方法也可被datetime类对象调用,如timetuple(),weekday(),strftime(fmt)等

      

      *strftime中的格式,除了%y-%m-%d %H:%M:%D外,还有:

        %a  星期几,如Tue,Sar,Wed

        %b  月份,如Apr,May.

        %j  儒历日

        %x  YY/MM/DD格式(等于说是写了%x就代表是写了%y/%m/%d,下同)

        %X  HH:MM:SS格式

        %c  yy/mm/dd HH:MM:SS

        %W  第几周

          

          

  • 相关阅读:
    Vue入门系列(四)之Vue事件处理
    Vue入门系列(五)Vue实例详解与生命周期
    微信为啥不能直接下载.apk安装包
    Oracle行转列SQL
    MyISAM 和InnoDB区别
    jQuery easyui datagrid数据绑定
    js调用百度地图API创建地图,搜索位置
    python tornado框架使用
    python数据库连接池
    python操作数据库
  • 原文地址:https://www.cnblogs.com/franknihao/p/6534200.html
Copyright © 2011-2022 走看看