1. 程式人生 > >datetime函式和random.seed()函式的應用

datetime函式和random.seed()函式的應用

一,datetime

在python中datetime是一個庫是一個模組也是一個函式,作用很多,這裡面只對其做簡單的最常用的講解。

首先返回系統時間

import datetime

nowTime=datetime.datetime.now()

print nowTime

輸出結果是: 2016-11-04 14:27:09.538000

返回當天日期

Today=datetime.date.today()

print Today

輸出的結果是:2016-11-04

時間間隔(這是一個time模組很有用的)

import time

def sleeptime(hour,min,sec):

     return hour*3600+min*60+sec;

sleep_time=sleeptime(0,0,5);

while 1==1:

    time.sleep(sleep_time);

    print "每隔5秒顯示一次"

輸出結果是:

每隔5秒顯示一次

每隔5秒顯示一次

每隔5秒顯示一次

二,random.seed()

random.seed()是隨機數種子,也就是為隨機數提供演算法,完全相同的種子產生的隨機數列是相同的,

所以如果想產生不同的隨機數就需要用當前時間作為種子

import random

random.seed(0)

print "Random number with seed 0 : ", random.random()

輸出結果:Random number with seed 0 : 0.844421851525

random.seed(0)

print "Random number with seed 0 : ", random.random()

輸出結果:Random number with seed 0 : 0.844421851525

random.seed(0)

print "Random number with seed 0 : ", random.random()

輸出結果:Random number with seed 0 : 0.844421851525

以下為同時執行三個相同的隨機種子

random.seed(0)

print "Random number with seed 0 : ", random.random()

random.seed(0)

print "Random number with seed 0 : ", random.random()

random.seed(0)

print "Random number with seed 0 : ", random.random()

輸出結果:是相同的

Random number with seed 0 : 0.844421851525

Random number with seed 0 : 0.844421851525

Random number with seed 0 : 0.844421851525

以下為同時執行三個不同的隨機種子

random.seed(0)

print "Random number with seed 1 : ", random.random()

random.seed(1)

print "Random number with seed 2 : ", random.random()

random.seed(2)

print "Random number with seed 2 : ", random.random()

輸出結果:是不同的

Random number with seed 0 : 0.844421851525Random number with seed 1 : 0.134364244112Random number with seed 2 : 0.956034271889

所以如果想產生不同的隨機數就需要用當前時間作為種子

即:

random.seed(datetime.datetime.now())

print "Random number with當前時間: ", random.random()

輸出結果:Random number with當前時間: 0.219216629629

random.seed(datetime.datetime.now())

print "Random number with當前時間: ", random.random()

輸出結果:Random number with當前時間: 0.698622464392

random.seed(datetime.datetime.now())

print "Random number with當前時間: ", random.random()

輸出結果:Random number with當前時間: 0.909038313683

random.seed(datetime.datetime.now())

print "Random number with當前時間: ", random.random()

random.seed(datetime.datetime.now())

print "Random number with當前時間: ", random.random()

random.seed(datetime.datetime.now())

print "Random number with當前時間: ", random.random()

輸出結果:結果相同

Random number with當前時間: 0.884565419178Random number with當前時間: 0.884565419178Random number with當前時間: 0.884565419178

總結:可以看出random.seed(datetime.datetime.now())每次輸出的結果都不相同

只有在同時輸出的結果才會相同,因為“同時”表明時間點是相同的