本文實例講述了Python實現隨機生成有效手機號碼及身份證功能。分享給大家供大家參考,具體如下:
中國那么大,人那么多,幾乎人手一部手機。手機號碼已經作為各大互聯網站的注冊賬戶。同樣,身份證更是如此。以下是生成有效手機號碼和身份證號。
身份證需要下載districtcode.txt文件。
完整代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import os import random import datetime BASE_DIR = os.path.dirname(os.path.dirname(__file__)) DC_PATH = BASE_DIR + "districtcode.txt" # 隨機生成手機號碼 def createPhone(): prelist = [ "130" , "131" , "132" , "133" , "134" , "135" , "136" , "137" , "138" , "139" , "147" , "150" , "151" , "152" , "153" , "155" , "156" , "157" , "158" , "159" , "186" , "187" , "188" ] return random.choice(prelist) + " ".join(random.choice(" 0123456789 ") for i in range ( 8 )) # 隨機生成身份證號 def getdistrictcode(): with open (DC_PATH) as file : data = file .read() districtlist = data.split( '\n' ) for node in districtlist: #print node if node[ 10 : 11 ] ! = ' ' : state = node[ 10 :].strip() if node[ 10 : 11 ] = = ' ' and node[ 12 : 13 ]! = ' ' : city = node[ 12 :].strip() if node[ 10 : 11 ] = = ' ' and node[ 12 : 13 ] = = ' ' : district = node[ 14 :].strip() code = node[ 0 : 6 ] codelist.append({ "state" :state, "city" :city, "district" :district, "code" :code}) def gennerator(): global codelist codelist = [] if not codelist: getdistrictcode() id = codelist[random.randint( 0 , len (codelist))][ 'code' ] #地區項 id = id + str (random.randint( 1930 , 2013 )) #年份項 da = datetime.date.today() + datetime.timedelta(days = random.randint( 1 , 366 )) #月份和日期項 id = id + da.strftime( '%m%d' ) id = id + str (random.randint( 100 , 300 )) #,順序號簡單處理 i = 0 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' : '5' , '9' : '3' , '10' : '2' } #校驗碼映射 for i in range ( 0 , len ( id )): count = count + int ( id [i]) * weight[i] id = id + checkcode[ str (count % 11 )] #算出校驗碼 return id print createPhone() print gennerator() |
運行結果如下:
希望本文所述對大家Python程序設計有所幫助。