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 相关文章推荐
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
python实现三次样条插值
Dec 17 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
python return逻辑判断表达式实现解析
Dec 02 Python
python定义类self用法实例解析
Jan 22 Python
python如何建立全零数组
Jul 19 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
python 图像增强算法实现详解
Jan 24 Python
python批量更改目录名/文件名的方法
Apr 18 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下关于中英数字混排的字符串分割问题
2010/04/06 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python判断文件和字符串编码类型的实例
2017/12/21 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
python中添加模块导入路径的方法
2021/02/03 Python
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
八年级物理教学反思
2014/01/19 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
保护环境倡议书
2014/04/14 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
党员志愿者活动总结
2014/06/26 职场文书
朋友离别感言
2015/08/04 职场文书
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server