Random 函式在批次造資料中的運用
random 函式作為 python 中生成隨機資料的主要函式,在我們造資料的過程中有著非常廣闊的應用
以下是 random 函式的幾種主要用法:
print( random.randint(1,10) ) # 產生 1 到 10 的一個整數型隨機數
print( random.random() ) # 產生 0 到 1 之間的隨機浮點數
print( random.uniform(1.1,5.4) ) # 產生 1.1 到 5.4 之間的隨機浮點數,區間可以不是整數
print( random.choice('tomorrow') ) # 從序列中隨機選取一個元素
print( random.randrange(1,100,2) ) # 生成從1到100的間隔為2的隨機整數
print random.sample('zyxwvnmlkjihgfedcba',5) # 多個字元中生成指定數量的隨機字元
我以自己剛在新公司寫的一個指令碼為例:需要批次生成 C 端的賬號,我需要每次生成隨機的手機號、身份證號再去調註冊介面、認證介面。批次生成隨機的手機號和身份證號會有很多應用到 Random 函式的地方。
手機號碼:3 位字首 +8 位隨機數字
隨機取 3 位字首:
list = ['130','134','135','137','139','181','188','189']
temp = random.choice(list)
8 位隨機數字,這裡提供 2 種寫法:
mobile = temp+''.join(random.choice("0123456789") for i in range(8))
mobile = temp + ''.join(random.sample(string.digits,8))
身份證號碼:6 位地區碼 + 出生日期 + 三位隨機數 + 權重位
6 位地區碼,如果想取值範圍廣一些,大家可以把地區碼寫到.txt 或者 excel 裡面去讀取,我這裡就隨機列了一些地區碼去取:
arealist = [ "440301","370600", "370601", "370602", "370611", "370612", "370613", "370634", "370681",
"370682", "370683", ]
area = random.choice(arealist)
隨機生成出生日期,這裡我的方法是在一個範圍區間隨機取一個時間戳,但是 time.mktime() 方法有個坑,不能輸入 1970 年之前的日期:
start = (1971, 1, 17, 17, 3, 38, 1, 48, 0)
end = (2001, 12, 1, 12, 10, 10, 10, 10, 10)
start_time = time.mktime(start)
end_time = time.mktime(end)
s = random.randint(start_time,end_time)
toule = time.localtime(s)
birth = time.strftime("%Y%m%d",toule)
生成 3 位隨機數:
d = random.randint(100,999)
最後一位權重碼計算:
temp = area+str(birth)+str(id)
count=0
weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
checkcode = {0:'1',1:'0', 2:'X', 3:'9',4:'8',5:'7',6:'6',7:'5',8:'4',9:'3',10:'2'}
for i in range(0,len(temp)):
tes = int(temp[i])
count = count+tes*weight[i]
last = count%11
lastcode = checkcode[last]
IDcard = temp + ''.join(lastcode)
相關文章
- JAVA中的Random()函式Javarandom函式
- numpy-random函式random函式
- (譯)函式式元件在Vue.js中的運用函式元件Vue.js
- postgresql中常用的函式:length、concat、as、substring、randomSQL函式random
- 用函式索引構造特殊的約束函式索引
- Elasticsearch在物流資料中心的應用Elasticsearch
- 關於 Math.random 的一些函式random函式
- Python隨機函式random使用詳解Python隨機函式random
- 運用inlinehook主動呼叫函式inlineHook函式
- Apache Hudi在醫療大資料中的應用Apache大資料
- MySQL 日期函式、時間函式在實際場景中的應用MySql函式
- 在離散混合製造環境中應用製造運營模型模型
- zip函式在爬蟲中應用函式爬蟲
- 邊學邊寫——母函式及其在中學數學競賽中的運用(一)函式
- R語言中na.omit函式的應用 以及 在資料框中的應用R語言MIT函式
- Render函式在Vue多頁面應用中的應用函式Vue
- faker 類 randomElement () 方法和 array_random () 函式區別分析。random函式
- 建構函式顯式返回 this 在 new 運算及 call 方法中的比較函式
- 我的 golang 學習筆記系列二:golang的函式運用Golang筆記函式
- 光纖在資料中心網路中的應用前景如何
- NumPy常用的位運算函式函式
- 安科瑞資料中心綜合能效管理系統在資料中心綠色升級的應用
- 資料中心運維人的半衰期危機運維
- Vue函式式元件的應用Vue函式元件
- Dart函式、類和運算子-處理資訊Dart函式
- 動環監控系統在資料中心能耗管理的應用
- 統計分析和智慧聚類在遊戲資料中的應用聚類遊戲
- 啟用函式的作用函式
- 大資料中批次壓縮與獨立壓縮的比較 - Bozho大資料
- Redis在大資料中必看的使用技巧Redis大資料
- 教你如何運用python 6.7 編寫printTable()函式表格列印Python函式
- 構造和解構函式呼叫順序函式
- alpakka-kafka(9)-kafka在分散式運算中的應用Kafka分散式
- C與C++在函式和資料的比較C++函式
- Day76.雜湊表、雜湊函式的構造 -資料結構函式資料結構
- 1:賦值運算子函式賦值函式
- Mysq-造數工具mysql_random_data_loadMySqlrandom
- 尤拉函式的應用函式