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找出list中最常出现元素的方法
Jun 14 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
不可错过的十本Python好书
Jul 06 Python
Python统计分析模块statistics用法示例
Sep 06 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
Python如何实现定时器功能
May 28 Python
python能做哪方面的工作
Jun 15 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 Python
python爬取音频下载的示例代码
Oct 19 Python
MATLAB 全景图切割及盒图显示的实现步骤
May 14 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短域名转换为实际域名函数
2011/01/17 PHP
php时间计算相关问题小结
2016/05/09 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
什么是JavaScript
2009/08/13 Javascript
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
Python实现的简单hangman游戏实例
2015/06/28 Python
python基础教程之匿名函数lambda
2017/01/17 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
linux面试题参考答案(4)
2014/09/21 面试题
终端业务员岗位职责
2013/11/27 职场文书
简历上的自我评价
2014/02/03 职场文书
养牛场项目建议书
2014/05/13 职场文书
工作检讨书大全
2015/01/26 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
oracle索引总结
2021/09/25 Oracle
python神经网络ResNet50模型
2022/05/06 Python