python身份证信息识别代码,身份证加密算法有哪些,身份证 号码 算法 python

  python身份证信息识别代码,身份证加密算法有哪些,身份证 号码 算法 python

  最近逛了逛LeetCode,发现很多题目的官方问题解答都是用Python写的。这说明Python语言已经逐渐体会到了简洁的语法,丰富的内置函数,直观的表达,以及能够以最简洁明了的方式实现算法思想的优越性。

  目前编程教育起点高,难度堪比奥数,压倒了很多孩子,成为少数算法思维特别强的学生的“专利”。以后高中信息技术要学习Python语言,初中小学要跟进,全面提高学生的计算思维。现有的编程教程要么太浅,只介绍Python的语法知识,要么太难,达不到信息奥数,不适合普通学生学习。

  希望有一个人,没有天赋,搭桥铺路。通过设置适当难度的有趣案例,让孩子进一步掌握Python的基本数据结构,进一步理解顺序、选择、循环等算法结构,运用分析、枚举、模拟等算法思想解决问题、实现算法。

  经过一段时间的研究,我设计了从入门到推广的算法教学路径,收集整理了大量相关资料,然后用《Python算法之旅》微信微信官方账号推送了一系列文章。

  为了表达更加灵活,视角更加多样,语言更加生动,我打算展示一下利用人物对话解决问题的思路和知识点。希望大家喜欢。

  出道人物介绍:

  Xwdyt:小学四年级学生,加入了学校的编程兴趣小组,学习了Python语言的基本语法,了解了简单的程序。她工作态度粗暴,对什么都好奇,喜欢刨根问底。是一种爱恨交织的有趣心情。

  野蝶:一个八年级的男生,很喜欢编程。据说长得像国宝熊猫,但是动作很慢,很可爱。确实他工作慢,说话慢,但是一点也不着急。他常说,“慢就是快。只要坚持,蜗牛也能爬金字塔。”

  Yydhmg:虽然年纪大了,但依然对生活充满热情。“热爱生活,热爱运动”是他的人生信条,和孩子一起编程是他最大的乐趣。他很难捉摸,总是在孩子们最需要帮助的时候出现。当然,你不能马上打电话给yydhmg。他很忙,所以他很忙。所以,有什么问题,先自己考虑。

  字符串ID号的秘密

  Xwdyt:最近听我们老师说,网上有很多骗子利用人们泄露的身份信息行骗,很多人都被骗了。老师提醒我们不要随便告诉别人自己的身份证号,以免被坏人利用。身份证真的包含了我们很多个人信息吗?

  野蝴蝶:是的。所有具有中华人民共和国(中国)国籍的公民都有唯一且不可更改的18位身份证号码。

  Xwdyt:18位?有这么多吗!

  野蝴蝶:是的。需要这么多。不然太短了,不够用。这18个数字从左到右的顺序是:6位地址码、8位出生日期码、3位序列码、1位校验码。比如我的身份证号是“330281200605302813”,“330281”表示我的出生地“浙江省余姚市”,“20060530”表示我的生日是2006年5月30日,“281”表示序号。

  Xwdyt:地址码和出生日期码都可以理解。什么是序列码和校验码?

  野蝴蝶:序号是指同一地址码所代表的区域内,给予同年、月、日出生的人的序号。序号奇数分配给男性,偶数分配给女性。校验码是根据前面的17位数字码计算出来的校验码,是判断身份证号有效与否的一个依据。

  Xwdyt:原来如此!是不是说知道我的身份证号就能知道我的生日?

  野蝴蝶:是的。不仅要知道你的生日,还要知道你的出生地和性别。Xwdyt实际上是一个用Python编写的程序。根据输入的18位身份证号码,可以输出公民的出生日期和性别。

  Xwdyt:很简单。不就是用字符串切片来访问子字符串吗?请看看我的。

  问题:根据输入的18人身份证号,输出公民的出生日期和性别。

  代码:id_num=input(请输入id号:)

  生日=身份证号码[ 6:10 ] -身份证号码[ 10:12 ] -身份证号码[ 12:14 ]

  sex= male ifint(id _ num[14:17])% 2==1 else female)。

  Print(二进制,性))。

  Yydhmg:xwdyt太棒了!这段代码真的很美。野蝶,能不能把这段代码的功能抽象成一个函数?

  野蝴蝶:当然。也可以从xwdyt编写不同的代码。

  功能:根据输入的18位身份证号码,返回公民的出生日期和性别。

  函数名:id_INF(id_num:str )- tuple

  参数表:id_num -包含数字标识号的字符串。

  返回值:包含出生日期信息和性别的元组。

  示例id_num=330281200605302813 ,2006-05-30,返回一个人(返回

  示例id_num=330281201010310641 并返回(2010年10月31日,女)

  代码:defid_INF(id_num:str)-

  元组:

  生日=身份证号码[6:10] -身份证号码[10:12] -身份证号码[12:14]

  性别=女性和男性

  r=int(id_num[16]) % 2

  返回(生日,性别[r])

  Xwdyt:野生小蝴蝶,你好样的!还不如我用sex string代替我的if语句,只提取序列码的最后一位来判断它的奇偶性!但是我知道还有一种方法可以提取第17个字符,就是id_num[-2]。

  Yydhmg:确实如此。你们两个都很厉害,熟练掌握了切弦和拼接的方法。但我想指出,例2中野生小蝴蝶给出的身份证号“330281201010310641”是无效身份证号。

  Xwdyt,野生小蝴蝶:啊!身份证号无效?你是怎么看出来的,老师?

  Yydhmg:嗯。对不起,我还有别的事要做。你最好自己先考虑一下这个问题。再见。

  关于作者:聪明如傻子,微信昵称“dbdbz”。高中信息技术老师,专注于中小学编程和算法教学,在“Python算法之旅”微信微信官方账号写了近百篇原创文章,愿与您探讨中小学算法教育话题。请给我们你的建议。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: