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中的pprint折腾记
Jan 21 Python
Python 函数基础知识汇总
Mar 09 Python
python pygame实现五子棋小游戏
Oct 26 Python
Flask框架请求钩子与request请求对象用法实例分析
Nov 07 Python
Python 寻找局部最高点的实现
Dec 05 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
pytorch梯度剪裁方式
Feb 04 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
使用keras根据层名称来初始化网络
May 21 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
Vs Code中8个好用的python 扩展插件
Oct 12 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
Javascript 对象的解释
2008/11/24 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
vue实现购物车案例
2020/05/30 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
python 调试冷知识(小结)
2019/11/11 Python
python数据类型强制转换实例详解
2020/06/22 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
化妆品店促销方案
2014/02/24 职场文书
北体毕业生求职信
2014/02/28 职场文书
委托协议书范本
2014/04/22 职场文书
七夕活动策划方案
2014/08/16 职场文书
中英文求职信范文
2015/03/19 职场文书
运动会开幕式主持词
2015/07/01 职场文书
教师节座谈会主持词
2015/07/03 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript