Python实现随机生成有效手机号码及身份证功能示例


Posted in Python onJune 05, 2017

本文实例讲述了Python实现随机生成有效手机号码及身份证功能。分享给大家供大家参考,具体如下:

中国那么大,人那么多,几乎人手一部手机。手机号码已经作为各大互联网站的注册账户。同样,身份证更是如此。以下是生成有效手机号码和身份证号。

身份证需要下载districtcode.txt文件

完整代码如下:

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实现随机生成有效手机号码及身份证功能示例

Python 相关文章推荐
python为tornado添加recaptcha验证码功能
Feb 26 Python
python快速查找算法应用实例
Sep 26 Python
python 换位密码算法的实例详解
Jul 19 Python
Django权限机制实现代码详解
Feb 05 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
Mar 15 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
python 同时读取多个文件的例子
Jul 16 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
Django打印出在数据库中执行的语句问题
Jul 25 Python
Django 实现外键去除自动添加的后缀‘_id’
Nov 15 Python
python 装饰器功能与用法案例详解
Mar 06 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 #Python
Python实现选择排序
Jun 04 #Python
Python使用pymysql小技巧
Jun 04 #Python
Python常见异常分类与处理方法
Jun 04 #Python
Python实现Linux的find命令实例分享
Jun 04 #Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 #Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 #Python
You might like
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
javascript document.referrer 用法
2009/04/30 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
用python代码做configure文件
2014/07/20 Python
Python 字典dict使用介绍
2014/11/30 Python
Python中的类与对象之描述符详解
2015/03/27 Python
使用python实现链表操作
2018/01/26 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
Python数据类型之List列表实例详解
2019/05/08 Python
使用Python在Windows下获取USB PID&VID的方法
2019/07/02 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
Python中私有属性的定义方式
2020/03/05 Python
Python安装OpenCV的示例代码
2020/03/05 Python
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
2014国培学习感言
2014/03/05 职场文书
期末复习计划
2015/01/19 职场文书
趣味运动会开幕词
2015/01/28 职场文书
八月一日观后感
2015/06/10 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫