中国居民身份证校验码算法如下:

将身份证号码前面的17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 将这17位数字和系数相乘的结果相加。用加出来和除以11,取余数。 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字, 其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。余数和校验码的对应关系可以用公式:m=(12-n) mod 11计算,其中mod为求余运算,m为校验码,n为之前计算出来的余数。如果之前计算出的余数是3,第18位的校验码就是9。如果余数是2那么对应的校验码就是X,X实际是罗马数字10。 例如:某男性的身份证号码为【53010219200508011x】, 我们看看这个身份证是不是合法的身份证。首先我们得出前17位的乘积和【(57)+(39)+(010)+(15)+(08)+(24)+(12)+(91)+(26)+(03)+(07)+(59)+(010)+(85)+(08)+(14)+(1*2)】是189,然后用189除以11得出的结果是189/11=17----2,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的检验码是X。所以,可以判定这是一个正确的身份证号码。

请编写一个程序,输入身份证前17位后,计算并输出最后的校验码,

输入格式:

前17位的每个数字分别输入,中间用空格间隔

输出格式:

输出校验码,如果校验码是10,不必转成X

输入样例:

5 3 0 1 0 2 1 9 2 0 0 5 0 8 0 1 1

输出样例:

10

思路:

使用split()函数处理输入样例。

代码如下:

def check_id_data(n):var=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]var_id=['1','0','x','9','8','7','6','5','4','3','2']n = str(n)sum = 0for i in range(0,17):sum += int(n[i])*var[i]sum %= 11print(var_id[sum])
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q = input().split()
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q = eval(a),eval(b),eval(c),eval(d),eval(e),eval(f),eval(g),eval(h),eval(i),eval(j),eval(k),eval(l),eval(m),eval(n),eval(o),eval(p),eval(q)
n = str(a)+str(b)+str(c)+str(d)+str(e)+str(f)+str(g)+str(h)+str(i)+str(j)+str(k)+str(l)+str(m)+str(n)+str(o)+str(p)+str(q)check_id_data(n)

参考自:https://blog.csdn.net/qq_21516633/article/details/103166438

【题解】【PTA里的Python题库】7-1 身份证校验_python相关推荐

  1. 1000道Python题库系列分享14(1道代码阅读题)

    上期题目链接:1000道Python题库系列分享13(22道填空题) 上期题目答案: 本期题目:阅读下面的代码,分析其功能,并指出可能存在的错误及其原因,最好能够给出解决方案. 留言给出完整答案的朋友 ...

  2. 1000道Python题库系列分享十二(9道编程题)

    上期题目连接:1000道Python题库系列分享十一(9道) 上期题目答案: 本期题目: ---------董付国老师Python系列教材-------- 1)<Python程序设计(第2版)& ...

  3. 手机上开发python有哪些软件-哪个手机软件有python题库

    哪个手机软件有python题库? 推荐用leetcode,这款app十分适合大家来练习编程,它有着丰富的题库,而且对题目进行了分类,适合所有学习程度的用户. 下面给大家介绍一下这个软件的功能: 一.选 ...

  4. 语言题库体型判断问题_1000道Python题库系列分享20(43道填空与判断题)

    本期题目: 参考答案: 温馨提示 进入公众号,通过菜单"最新资源"==>"历史文章"可以快速查看分专题的文章列表,通过"最新资源"== ...

  5. python小屋_1000道Python题库系列分享九(31道)

    上期题目:1000道Python题库系列分享八(29道) 上期答案: 本期题目: ----------相关阅读---------- 教学课件 1900页Python系列PPT分享一:基础知识(106页 ...

  6. 1000道Python题库系列分享24(41个客观题,numpy专题)

    封面图片:<Python程序设计基础(第2版)>,董付国,清华大学出版社 ============== 好消息:智慧树网APP"知到"中搜索"董付国" ...

  7. 1000道Python题库系列分享23(61个填空题)

    封面图片:<玩转Python轻松过二级>,董付国,清华大学出版社 ================= 本期题目,参考答案在文末: 温馨提示 关注本公众号"Python小屋&quo ...

  8. 1000道Python题库系列分享

    本文是汇总地址,推送了新的题库之后会在这里更新. 1000道Python题库系列分享一(17道) 1000道Python题库系列分享二(48道) 1000道Python题库系列分享三(30道) 100 ...

  9. 1000道Python题库系列分享20(43道填空与判断题)

    本期题目: 参考答案: 温馨提示 进入公众号,通过菜单"最新资源"==>"历史文章"可以快速查看分专题的文章列表,通过"最新资源"== ...

  10. 1000道Python题库系列分享15(1道代码改写题)

    考虑到前面分享题库的时候,要等下一期才给出答案,不方便大家及时核对和学习.以后改为每期在文末直接给出答案,不明白的地方可以文末留言交流,提高学习效率. ================= 问题描述: ...

最新文章

  1. React学习笔记7:React使用注意事项
  2. AndroidStudio中如何打开hierarchyviewer.bat
  3. 深度学习-Tensorflow2.2-Eager模式与自定义训练{4}-微分运算训练练习-16
  4. oracle12c 清理归档,Oracle 12c中数据删除(delete)新特性之数据库内归档功能
  5. Web API 速率限制(一)
  6. 十九、MySQL常用命令总结
  7. Excellent Service
  8. BERT源码分析(一)
  9. Qml文件的两种加载方式
  10. Git 合并单个文件
  11. 美式英语 [t] 的发音
  12. [原]海纳百川 有容乃大:SparkR与Docker的机器学习实战
  13. 苹果App Store引发的悲喜狂欢
  14. onedrive 添加到本地硬盘_Win10系统OneDrive映射到本地磁盘的解决设置技巧
  15. 百度架构师手把手教深度学习之心得
  16. Android 广播(Broadcast)
  17. 字节码插桩(javassist)之插入代码块|IOC框架(Hilt)之对象注入~研究
  18. BDWK免费下载白嫖指南【1s搞定】
  19. C语言中的scanf
  20. Oracle的授权方式

热门文章

  1. Flash制作卷轴水墨画展开动画效果
  2. HTML、JS、CSS 实现果冻按钮效果 代码解读
  3. Java前叉夹器_大器晚成 SRAM S-900直装夹器评测
  4. 大脑神经网络记忆原理图,记忆力机制的神经网络
  5. Depsolving loop limit reached
  6. 最大化参数 火车头_火车采集器,您身边的的网页数据采集专家!
  7. 激情彭拜的10月英语学习
  8. JAVAWEB开发之Hibernate详解(二)——Hibernate的持久化类状态与转换、以及一级缓存详解、关联关系的映射(一对多、多对多、级联)
  9. CE-FPN: Enhancing Channel Information for Object Detection
  10. vue element-ui列表中el-switch 开关,使用0和1