1. 程式人生 > >python中time和random模組的使用

python中time和random模組的使用

time模組

以下操作均在ipython中實現:
import time #呼叫time模組
1) time.time()  #返回當前時間的時間戳

In [9]: time.time()
Out[9]: 1504767585.852276

2) time.sleep() #執行緒推遲指定的時間執行,單位為秒

3) time.localtime() #將一個時間戳轉換為當前時區的struct_time,引數未提供時,則以當前時間為準

In [15]: time.localtime()
Out[15]: time.struct_time(tm_year=2017, tm_mon=9
, tm_mday=7, tm_hour=15, tm_min=8, tm_sec=33, tm_wday=3, tm_yday=250, tm_isdst=0)

4)time.gmtime() #和localtime()方法類似,gmtime()方法是將一個時間戳轉換為UTC時區(0時區)的struct_time

In [18]: time.gmtime()
Out[18]: time.struct_time(tm_year=2017, tm_mon=9, tm_mday=7, tm_hour=7, tm_min=9, tm_sec=53, tm_wday=3, tm_yday=250, tm_isdst=0
)

5) time.mktime() #將一個struct_time轉化為時間戳

In [19]: time.mktime(time.localtime())
Out[19]: 1504768311.0

6) time.asctime([t]) #把一個表示時間的元組或者struct_time表示為這種形式:’Sun Jun 20 23:21:05 2016’。如果沒有引數,將會將time.localtime()作為引數傳入

In [10]: time.asctime()
Out[10]: 'Thu Sep  7 15:05:10 2017'

7) time.strftime(format[, t])

# 把一個代表時間的元組或者struct_time(如由time.localtime()和time.gmtime()返回)轉化為格式化的時間字串。如果t未指定,將傳入time.localtime()。如果元組中任何一個元素越界,ValueError的錯誤將會被丟擲。

In [33]: time.strftime("%Y-%m-%d %X", time.localtime())
Out[33]: '2017-09-07 15:24:57'

8)time.ctime([secs]) #把一個時間戳(按秒計算的浮點數)轉化為time.asctime()的形式。如果引數未給或者為None的時候,將會預設time.time()為引數

In [36]: time.ctime()
Out[36]: 'Thu Sep  7 15:28:35 2017'

In [37]: time.ctime(time.time())
Out[37]: 'Thu Sep  7 15:28:40 2017'

9) time.strptime(string[,format]) #把一個格式化時間字串轉化為struct_time。實際上它和strftime()是逆操作

In [40]: time.strptime('2017-09-07 15:32:36', '%Y-%m-%d %X')
Out[40]: time.struct_time(tm_year=2017, tm_mon=9, tm_mday=7, tm_hour=15, tm_min=32, tm_sec=36, tm_wday=3, tm_yday=250, tm_isdst=-1)

random模組

import random #呼叫random模組
1) random.random() #用於生成一個0到1的隨機符點數: 0 <= n < 1.0

In [68]: random.random()
Out[68]: 0.45576740493927315

In [69]: random.random()
Out[69]: 0.12225825168395976 

In [70]: random.random()
Out[70]: 0.6732475315108625

2) random.uniform(a, b) #生成一個指定範圍內的隨機符點數,兩個引數其中一個是上限,一個是下限。

In [71]: random.uniform(5,10)
Out[71]: 6.022391764974091

3)random.randint(a, b) #生成一個指定範圍內的整數。其中引數a是下限,引數b是上限,生成的隨機數n: a <= n <= b

In [79]: random.randint(0,3)
Out[79]: 1

In [80]: random.randint(0,3)
Out[80]: 3

4) random.shuffle(),# 用於將一個列表中的元素打亂

In [95]: a = ["westos",1,"haha",22,("ok",1)]
In [96]: random.shuffle(a)
In [97]: print a
['westos', ('ok', 1), 22, 'haha', 1]

5)random.sample(),# 從指定序列中隨機獲取指定長度的片斷。sample函式不會修改原有序列

In [98]: b = [1,2,3,5,6,7,9]

In [99]: c = random.sample(b,3)  #從列表b中隨機獲取3個元素,作為一個片段返回

In [100]: print c   #檢視隨機獲取的3個元素
[5, 3, 6]

In [101]: print b              
[1, 2, 3, 5, 6, 7, 9]  #原有序列並不會發生改變

6)random.choice() #從序列中獲取一個隨機元素

In [101]: print b
[1, 2, 3, 5, 6, 7, 9]

In [102]: random.choice(b)
Out[102]: 6

In [103]: random.choice(b)
Out[103]: 5

In [104]: random.choice(b)
Out[104]: 6

7) random.randrange() #從指定範圍內,按指定基數遞增的集合中 獲取一個隨機數

In [263]: random.randrange(1,10,2)   # 意為在1到10中以2遞增的集合[1,3,5,7,9]中,隨機獲取一個數字
Out[263]: 9

In [264]: random.randrange(1,10,2)
Out[264]: 7

In [265]: random.randrange(1,10,2)
Out[265]: 5

關於time和random模組的使用方法先介紹這麼多,後續更新