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