【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  第幾周

 

      

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM