头歌python 身份证号的奥秘 | 您所在的位置:网站首页 › 性别男的身份证号码 › 头歌python 身份证号的奥秘 |
第1关:判断性别
任务描述
通过身份证的第17位也就是倒数第二位的数字可以辨别该身份证所属人的性别,奇数为男性,偶数为女性。 本关任务:输入身份证号,第17位若是偶数,输出男性,否则输出女性 相关知识为了完成本关任务,你需要掌握: 1.如何截取字符串的一个字符 2.判断一个数是奇数还是偶数 3.分支语句 如何截取字符串的一个字符 如何判断一个数是奇数还是偶数 通过判断一个数除以2的余数是否为0,可以判断一个数是奇数还是偶数。 如果一个数除以2的余数为0,则该数是偶数,否则为奇数 分支语句 根据提示,在右侧编辑器补充代码 接收用户输入身份证号 若第17位是偶数,显示女性,否则显示男性 测试说明平台会对你编写的代码进行测试: 测试输入:请输入身份证号320302196404272039 预期输出: 男性 测试输入:请输入身份证号530127199406163521 预期输出: 女性 代码如下: sfzh=input("请输入身份证号") #代码开始 sex = sfzh[:17] sex = int(sex) if sex % 2 == 0: print("女性") else: print("男性") #代码结束 第2关:提取出生年月 任务描述身份证号的第七位到第十位是出生的年份,第十一位到第十二位是出生的月份,第十三位到第十四位是出生的日号。 本关任务:编写一个小程序,输入身份证号,按9999年99月99日格式输出其出生日期。 相关知识为了完成本关任务,你需要掌握:1.字符串切片,2.格式输出。 字符串切片 格式输出 根据提示,在右侧编辑器补充代码。 输入身份证号,按9999年99月99日格式输出其出生日期。 测试说明平台会对你编写的代码进行测试: 测试输入: 请输入身份证号320302196404272039 预期输出: 出生日期1964年04月27日 测试输入: 请输入身份证号530127199406163521 预期输出: 出生日期1994年06月16日 代码如下: sfzh=input("请输入身份证号") #代码开始 year = sfzh[6:10] month = sfzh[10:12] day = sfzh[12:14] print("出生日期%s年%s月%s日"%(year,month,day)) #代码结束 第3关:判断出生地 任务描述sfz.txt文件中存储了地区编码和地区名称 身份证的前6位为地区编码,可以在sfz.txt文件中查询到地区编号对应的地区名称 编写程序,输入身份证号,查询并显示对应的地区名称 若该地区编码不在文件中,显示地区名称 未知 相关知识为了完成本关任务,你需要掌握: 文件操作字符串的find方法字典的建立字典的查找文件操作 例 注意:字符串.strip(指定字符)方法,返回去除字符串尾部的指定字符后的字符串。若不指定字符,则去除尾部的空格和换行符。 字典的建立 若要建立以地区编码为键,地区名称为值的字典,可以打开文件,读取一行,将前六个字符(地区编号)作为键,第七个字符到最后(地区名称)作为值,建立字典。 对所有的行循环,就可以建立所有地区编号和名称的字典。 字典的查找 .get(,) 在字典中,若存在该键,则返回相应的值,否则返回默认值 如果地区字典dqzd已经建立,通过get方法可以查找编码对应的地区名称,若无法找到,则返回未知 平台会对你编写的代码进行测试: 请输入身份证号530127199406163521 预期输出: 地区名称 云南省昆明市嵩明县 测试输入: 输入身份证号320302196404272039 预期输出: 地区名称 江苏省徐州市鼓楼区 测试输入: 输入身份证号132335195901011867 预期输出: 地区名称 未知 注意:地区名称和地区之间有空格 代码如下: sfzh=input("请输入身份证号") #代码开始 dqzd = {} f1 = open("sfz.txt","r") for line in f1: dqzd[line[:6]] = line[6:].strip() dq = dqzd.get(sfzh[:6],"未知") print("地区名称 {}".format(dq)) #代码结束 |
CopyRight 2018-2019 实验室设备网 版权所有 |