本文實例講述了Python使用當前時間、隨機數產生一個唯一數字的方法。分享給大家供大家參考,具體如下:
Python生成當前時間很簡單,比Java的代碼簡短多了,Java產生時間可參考《Java獲取當前系統事件System.currentTimeMillis()方法》
具體代碼如下:
1
2
3
4
|
#-*-coding:utf-8-*- import datetime now = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S" ) print now; |
運行結果如下,輸出當前的時間,時間格式根據strftime("%Y-%m-%d %H:%M:%S")
而定,相應的格式,正如C語言的printf語句那樣簡單。
Python可以利用如下語句產生唯一的隨機數:
1
2
|
import random; print random.randint( 0 , 100 ); #生成的隨機整數n,其中0<=n<=100 |
據此,我們可以利用當前時間、隨機數產生一個唯一的數字,用于一些上傳文件,產生文件等場合,
考慮到極端情況,在1秒內有1000個用戶上傳文件,也不會出現沖突的最好情況,就是利用當前時間+0~1000的隨機整數,構造一個隨機數字:
唯一值得注意的是,拼接時間與字符串要轉化成字符串才拼接,而不是直接相加,由于Python是沒有變量聲明的,直接相加則變成了數字之間的相加了。
同時注意,如果隨機數隨機到一個比10少的數字,應當在隨機產生出來的數字前面補上一個0,使得產生的數字的位數是相同的。
具體代碼如下:
1
2
3
4
5
6
7
8
9
|
#-*-coding:utf-8-*- import datetime; import random; nowTime = datetime.datetime.now().strftime( "%Y%m%d%H%M%S" ); #生成當前時間 randomNum = random.randint( 0 , 100 ); #生成的隨機整數n,其中0<=n<=100 if randomNum< = 10 : randomNum = str ( 0 ) + str (randomNum); uniqueNum = str (nowTime) + str (randomNum); print uniqueNum; |
以下Python程序,將利用for設置10個測試用例來測試在一秒內產生的結果,代碼如下:
1
2
3
4
5
6
7
8
9
10
|
#-*-coding:utf-8-*- import datetime; import random; for i in range ( 0 , 10 ): nowTime = datetime.datetime.now().strftime( "%Y%m%d%H%M%S" ); #生成當前時間 randomNum = random.randint( 0 , 100 ); #生成的隨機整數n,其中0<=n<=100 if randomNum< = 10 : randomNum = str ( 0 ) + str (randomNum); uniqueNum = str (nowTime) + str (randomNum); print uniqueNum; |
得到的運行結果如下圖,可以發生產生出來的數字沒有一個是相同的:
希望本文所述對大家Python程序設計有所幫助。
原文鏈接:http://blog.csdn.net/yongh701/article/details/46912391