校验身份证号码并输出个人信息

news/2024/11/30 1:42:50/

描述

  1. 中国目前采用的是18位身份证号,其第7-10位数字是出生年,11-12位是出生月份,13-14是出生日期,第17位是性别,奇数为男性,偶数为女性,第18位是校验位。
    如果身份证号码的其中一位填错了(包括最后一个校验位),则校验算法可以检测出来。如果身份证号的相邻2位填反了,则校验算法可以检测出来。校验规则如下:
    1. 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。

      2. 将这17位数字和系数相乘的结果相加。
      3. 用加出来和除以11,看余数只可能是:0-1-2-3-4-5-6-7-8-9-10
    分别对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2
      4. 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X(大写英文字母X)。如果余数是10,身份证的最后一位号码就是2。

    用户输入一个身份证号,校验其是否是合法的身份证号码,如身份证号码不合法输出 '身份证校验位错误!',如身份证号码合法则分别在4行中输出'身份证号码校验为合法号码!'该人的出生年月日、年龄和性别。

    输入格式

    一个18位身份证号,末位为数字或大写字母X

    import datetime
    numbers = input()
    l1 = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
    s = 0
    for index, number in enumerate(numbers[:-1]):s += l1[index] * int(number)
    l2 = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
    if numbers[-1] == l2[s % 11]:print('身份证号码校验为合法号码!')print(f'出生:{numbers[6:10]}年{numbers[10:12]}月{numbers[12:14]}日')print(f'年龄:{int(datetime.datetime.now().year)-1-int(numbers[6:10])}')print('性别:男')if int(numbers[16])%2 else print('性别:女')
    else:print('身份证校验位错误!')
    


http://www.ppmy.cn/news/45480.html

相关文章

nginx线程池源码剖析

文章目录 nginx线程池1. 问题2. 解决办法 nginx线程池3. 线程池实现模型4. 线程池实现核心组件5.源码实现测试代码main.c封装互斥锁&条件变量线程池实现 nginx线程池 1. 问题 处理事件过程“阻塞”怎么办? 忙于漫长的 CPU 密集型处理 读取文件,但…

计算机网络复习记录(总结 —— 快速入门和快速复习)

一、计算机网络的定义和分类 定义: 简单定义:一些互连、自治、的计算机集合。 较好定义:计算机网络主要是由一些通用的、可编程的硬件互连而成,而这些硬件并非专门用来实现某一特定目的。 分类 按交换技术分类 按使用者分类 …

设计模式-行为型模式之观察者模式

3. 观察者模式 3.1. 模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多…

代码随想录刷题-栈与队列-有效的括号

文章目录 有效的括号习题我的解法代码随想录解法 有效的括号 本节对应代码随想录中:代码随想录,对应视频链接为:栈的拿手好戏!| LeetCode:20. 有效的括号_哔哩哔哩_bilibili 习题 题目链接:20. 有效的括…

SpringCloud网关——GateWay

GateWay 本专栏学习内容来自尚硅谷周阳老师的视频 有兴趣的小伙伴可以点击视频地址观看 概述 SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简…

Linux下安装mysql

文章目录 1. 上传安装包2. 检查Linux下是否存在冲突软件3. 解压安装包4. 在安装目录执行rpm安装命令5.检查配置参数6. 初始化mysql7. 查看生成的临时root用户密码8. 启动mysql服务9. 登录mysql10. 修改root用户的密码11. 允许任意ip可以使用root用户登录mysql12. 退出mysql13.关…

redis哨兵机制详解

文章目录 前言监控(Monitoring)自动故障转移(Automatic failover)配置提供者(Configuration provider)通知(Notification) 哨兵集群的组建哨兵监控Redis库主库下线的判定主观下线客观…

施工阶段如何应用BIM技术,建模助手有话说

​近些年来,越来越多的建筑项目采用BIM来提升管理水平和品质,特别在施工阶段,通过BIM技术可以将施工现场3D模型与施工进度链接,超前模拟施工情况,完成各种精细化施工方案,除了保障施工工作顺利推进&#xf…