Python使用當(dāng)前時(shí)間、隨機(jī)數(shù)產(chǎn)生一個(gè)唯一數(shù)字的方法
本文實(shí)例講述了Python使用當(dāng)前時(shí)間、隨機(jī)數(shù)產(chǎn)生一個(gè)唯一數(shù)字的方法。分享給大家供大家參考,具體如下:
Python生成當(dāng)前時(shí)間很簡(jiǎn)單,比Java的代碼簡(jiǎn)短多了,Java產(chǎn)生時(shí)間可參考《Java獲取當(dāng)前系統(tǒng)事件System.currentTimeMillis()方法》
具體代碼如下:
#-*-coding:utf-8-*- import datetime now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print now;
運(yùn)行結(jié)果如下,輸出當(dāng)前的時(shí)間,時(shí)間格式根據(jù)strftime("%Y-%m-%d %H:%M:%S")
而定,相應(yīng)的格式,正如C語(yǔ)言的printf語(yǔ)句那樣簡(jiǎn)單。
Python可以利用如下語(yǔ)句產(chǎn)生唯一的隨機(jī)數(shù):
import random; print random.randint(0,100);#生成的隨機(jī)整數(shù)n,其中0<=n<=100
據(jù)此,我們可以利用當(dāng)前時(shí)間、隨機(jī)數(shù)產(chǎn)生一個(gè)唯一的數(shù)字,用于一些上傳文件,產(chǎn)生文件等場(chǎng)合,
考慮到極端情況,在1秒內(nèi)有1000個(gè)用戶(hù)上傳文件,也不會(huì)出現(xiàn)沖突的最好情況,就是利用當(dāng)前時(shí)間+0~1000的隨機(jī)整數(shù),構(gòu)造一個(gè)隨機(jī)數(shù)字:
唯一值得注意的是,拼接時(shí)間與字符串要轉(zhuǎn)化成字符串才拼接,而不是直接相加,由于Python是沒(méi)有變量聲明的,直接相加則變成了數(shù)字之間的相加了。
同時(shí)注意,如果隨機(jī)數(shù)隨機(jī)到一個(gè)比10少的數(shù)字,應(yīng)當(dāng)在隨機(jī)產(chǎn)生出來(lái)的數(shù)字前面補(bǔ)上一個(gè)0,使得產(chǎn)生的數(shù)字的位數(shù)是相同的。
具體代碼如下:
#-*-coding:utf-8-*- import datetime; import random; nowTime=datetime.datetime.now().strftime("%Y%m%d%H%M%S");#生成當(dāng)前時(shí)間 randomNum=random.randint(0,100);#生成的隨機(jī)整數(shù)n,其中0<=n<=100 if randomNum<=10: randomNum=str(0)+str(randomNum); uniqueNum=str(nowTime)+str(randomNum); print uniqueNum;
以下Python程序,將利用for設(shè)置10個(gè)測(cè)試用例來(lái)測(cè)試在一秒內(nèi)產(chǎn)生的結(jié)果,代碼如下:
#-*-coding:utf-8-*- import datetime; import random; for i in range (0,10): nowTime=datetime.datetime.now().strftime("%Y%m%d%H%M%S");#生成當(dāng)前時(shí)間 randomNum=random.randint(0,100);#生成的隨機(jī)整數(shù)n,其中0<=n<=100 if randomNum<=10: randomNum=str(0)+str(randomNum); uniqueNum=str(nowTime)+str(randomNum); print uniqueNum;
得到的運(yùn)行結(jié)果如下圖,可以發(fā)生產(chǎn)生出來(lái)的數(shù)字沒(méi)有一個(gè)是相同的:
PS:這里再提供幾款相關(guān)工具供大家參考使用:
在線(xiàn)隨機(jī)生成個(gè)人信息數(shù)據(jù)工具:
http://tools.jb51.net/aideddesign/rnd_userinfo
在線(xiàn)隨機(jī)字符/隨機(jī)密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password
在線(xiàn)隨機(jī)數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
常用電話(huà)號(hào)碼在線(xiàn)查詢(xún):
http://tools.jb51.net/bianmin/pub_tel
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python中scipy.stats產(chǎn)生隨機(jī)數(shù)實(shí)例講解
- python numpy 常用隨機(jī)數(shù)的產(chǎn)生方法的實(shí)現(xiàn)
- Python產(chǎn)生一個(gè)數(shù)值范圍內(nèi)的不重復(fù)的隨機(jī)數(shù)的實(shí)現(xiàn)方法
- Python使用numpy產(chǎn)生正態(tài)分布隨機(jī)數(shù)的向量或矩陣操作示例
- Python編程產(chǎn)生非均勻隨機(jī)數(shù)的幾種方法代碼分享
- 使用python怎樣產(chǎn)生10個(gè)不同的隨機(jī)數(shù)
相關(guān)文章
教你掌握分布式訓(xùn)練PyTorch?DDP到Accelerate到Trainer
這篇文章主要為大家介紹了教你掌握分布式訓(xùn)練PyTorch?DDP到Accelerate到Trainer2023-02-02python進(jìn)行數(shù)據(jù)預(yù)處理的4個(gè)重要步驟
在數(shù)據(jù)科學(xué)項(xiàng)目中,數(shù)據(jù)預(yù)處理是最重要的事情之一,本文詳細(xì)給大家介紹python進(jìn)行數(shù)據(jù)預(yù)處理的4個(gè)重要步驟:拆分訓(xùn)練集和測(cè)試集,處理缺失值,處理分類(lèi)特征和進(jìn)行標(biāo)準(zhǔn)化處理,需要的朋友可以參考下2023-06-06利用Python實(shí)現(xiàn)圖書(shū)超期提醒
很多人喜歡逛圖書(shū)館,時(shí)不時(shí)去借本書(shū),但每本書(shū)可能只可以借兩個(gè)月,一旦超期不還就會(huì)進(jìn)行相應(yīng)的處罰!為什么不寫(xiě)個(gè)腳本來(lái)通知自己圖書(shū)超期呢?說(shuō)了這么多廢話(huà),我們就進(jìn)入主題吧?。?!2016-08-08python使用opencv實(shí)現(xiàn)馬賽克效果示例
這篇文章主要介紹了python使用opencv實(shí)現(xiàn)馬賽克效果,結(jié)合實(shí)例形式分析了Python使用cv2模塊操作圖片實(shí)現(xiàn)馬賽克效果的相關(guān)技巧,需要的朋友可以參考下2019-09-09VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解
這篇文章主要介紹了VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04