有关一道身份证的题目,要求python解决

就昨天晚上嗷一个妹纸问我这样一道问题哈:
问题:
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。
输入格式:
输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。
输出格式:
按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。
原题位置
出于撩妹的需要(手动狗头)我昨天晚上写了一下结果十行就有九行的BUG我。。。
于是乎我今天接着搞,总算是把它giao了出来哈哈
这里我的代码比较辣鸡哈哈大伙可能看得比较扎心。。。

##将传来的字符串变成数字组成的列表
def change(idstring):idlist=list(idstring)idnum=[]for i in idlist:                  ##从此处开始其实我也是查的别人家的代码(尬笑)try:m=int(i)idnum.append(m)except ValueError:i=Nonereturn idnum
##判断这个身份证号码符不符合规定
def judge3(idstring):                      ##为啥叫3呢因为昨天晚上写了俩都是错的(尬笑)idnum=change(idstring)for crossz in idnum[0:17]:if type(crossz)==False:tf=0breakz=(7*idnum[0]+9*idnum[1]+10*idnum[2]+5*idnum[3]+8*idnum[4]+4*idnum[5]+2*idnum[6]+1*idnum[7]+6*idnum[8]+3*idnum[9]+7*idnum[10]+9*idnum[11]+10*idnum[12]+5*idnum[13]+8*idnum[14]+4*idnum[15]+2*idnum[16])%11if z==2 and len(idnum)==17:tf=1elif len(idnum)==18 and z==0 and idnum[17]==1:tf=1elif len(idnum)==18 and z==1 and idnum[17]==0:tf=1elif len(idnum)==18 and idnum[17]==12-z:tf=1else : tf=0return tf
##输入身份证号并创建列表,这里搞的skr字符串列表毕竟身份证号码里面可能有叉
def key_in():max=eval(input("how many numbers:"))##告诉程序你要输入多少个身份证号码它先做个心理准备u=[]start=0while start<max:                    ##循环键入prim=input().split('\n')u+=primstart+=1return u
##组装前面的代码段,使其结构化
def main():u=key_in()  ##调用输入函数并创建列表fourze=1    ##这里纯粹是纪念假面骑士fourze(变身?)for item in u:fourze*=judge3(item)if fourze==1:print("All passed")else:for items in u:if judge3(items)==0:print(items)##把不合要求的身份证号码拉出来然后警察叔叔去找人然后抓起来(迷惑行为)
##准备调用了嗷
main()

代码跑一跑发现没啥问题,奶思(此处应有假笑男孩表情包)
晚上就单纯的想着判断函数,然鹅输入的身份证号是个字符串,先要变成数字的列表才能够对每个元素进行运算于是就加一个转化函数。接着我在主框里面自定义了三个身份证号码(我瞎编的嗷),看起来可以跑。现在就是用户的循环输入了,今天就加了一个键入的模式。顺便还看了看大神们的博客,学学split的用法。
组装完成了就把它放到题目的环境里面,并按照要求进行了一点修改,发现还是可以跑的。

有关一道身份证的python编程题相关推荐

  1. python身份证城市定位程序输入点_有关一道身份证的python编程题

    有关一道身份证的题目,要求python解决 就昨天晚上嗷一个妹纸问我这样一道问题哈: 问题: 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17 ...

  2. 记一次面试过程中的Python编程题

    这几天面试过程中遇到一道Python编程题,题目如下: 面试中遇到一个Python编程问题:一个字符串,将里面的数字取出来,如果第一个数字前面是+,表示整个数字为正数,如果第一个数字前面是-,表示数字 ...

  3. 首先定义一个Point (点)类,包含属性x,y(x,y为坐标点),方法有setPoint、getX、getY和OprintInfo...python编程题练习

    复习python编程题集合的第五题,若有错误和改进意见,欢迎评论交流!            首先定义一个Point (点)类:                   (1)包含属性x,y(x,y为坐标 ...

  4. Python编程题每日一练day1(附答案)

    Python编程题每日一练day1

  5. 100+Python编程题给你练(附答案)

    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松 get Python 的编程技能.目前,这个项目已经获得了 3994 Stars,2952 Forks. Github 地址:Python-pr ...

  6. 从屌丝到高手,三道Python编程题,九种解题算法,看看你属于哪一类

    大家在平时刷题的过程中,不仅仅要注意理解问题的本质,而且要在解决问题的基础上,优化自己的解题思路和程序. 今天,小编就带领大家来进行三道简单问题的解决,从屌丝解法到进阶解法再到高手解法,一步步的带领大 ...

  7. python编程题-python编程题库

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 上期题目连接:1000道python题库系列分享十一(9道)上期题目答案:? 本期 ...

  8. python程序设计题库-python编程题库

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 上期题目连接:1000道python题库系列分享十一(9道)上期题目答案 ...

  9. Python编程题汇总

    Python编程复习 1.1找出列表中单词最长的一个 找出列表中单词最长的一个def test():a = ["hello", "world", "y ...

  10. python编写函数求斐波那契数列的某一项_求解一道Python编程题

    展开全部 斐波那契数列自第三个数32313133353236313431303231363533e58685e5aeb931333433623139开始,每个数均为之前两个数的和. 至少有两种方法来实 ...

最新文章

  1. 从R-CNN到Mask R-CNN的思维跃迁
  2. 征集 | 国家标准《信息安全技术 健康医疗信息安全指南》征求意见
  3. hdu3117 斐波那契前后4位
  4. 【SAS NOTE】substr函数
  5. Python中的 optparse模块
  6. Python3.1-标准库之Numpy
  7. 网络空间技术实验室:打造信息安全技术培育平台
  8. 鼠标追踪没用_【擺评】赛睿里最好用的小手鼠标---Rival 3
  9. 理论基础 —— 查找 —— 顺序查找
  10. python-环境篇-Anaconda的安装
  11. java中什么是线程安全_Java 多线程:什么是线程安全性
  12. 使用高分四号数据计算表观反射率
  13. Linux搭建Postfix邮件服务器
  14. 第十周 项目二 阴险的小刚
  15. Spring事务抛出Exception异常不回滚
  16. linux 文件查找帮助命令 , 查看网络链接信息, 历史命令
  17. PMP 项目管理师 认识和学习路线规划
  18. Springboot高考志愿填报信息管理系统毕业设计源码251922
  19. 【电子杂志制作软件】云展网教程 | 编辑书橱标题、密码、打开方式、同步文件夹
  20. 滤波算法(四)—— 卡尔曼滤波算法

热门文章

  1. Android Uri的几种使用方法,分享共同学习
  2. Nginx的优点和缺点
  3. 检查macOS中硬盘是否健康的小技巧
  4. 电脑4g内存C语言CAD够用吗,电脑4g内存够用吗-电脑4g内存是否够用详情介绍 - 系统家园...
  5. 利用快递100api查询快递信息
  6. 宇宙简史|生物学家也要了解的物理
  7. G2O和Sliding Window中的Marginalization
  8. java 标签的制作
  9. SpringBoot的使用01
  10. mysql audit_关于Mysql Enterprise Audit plugin的使用