Python3 身份证号处理

Posted 犬饲Atsuhiro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3 身份证号处理相关的知识,希望对你有一定的参考价值。

身份证号处理

描述

18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。
用户输入一个合法的身份证号,请输出用户的出生年月日,年龄和性别。(不要求较验输入的合法性)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

import datetime

datetime.datetime.now().year  #可用于获得当前年份

输入格式

输入一个合法的身份证号字符串‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输出格式

类似以下格式输出:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

你出生于1973年05月16日
你今年47周岁
你的性别为男‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入输出示例

输入                                                   输出

220221197305165535                      你出生于1973年05月16日

                                                          你今年47周岁

                                                          你的性别为男

 

本题的出题时间为2020年,故输出格式中的年龄一项随着年份的改变会改变,不具有参考价值,且此处周岁无论是否过生日都为当前年份 - 出生年份

 

以下代码为日常生活中计算周岁的方式的算法

代码

from datetime import *
str1 = input()
age = datetime.now().year - int(str1[6:10])
if datetime.now().month > int(str1[10:12]):
    age = age - 1
elif datetime.now().month == int(str1[10:12]):
    if datetime.now().day > int(str1[12:14]):
        age = age - 1
if int(str1[16])%2!=0:
    sex = ""
else:
    sex = ""
print("你出生于{}年{}月{}日".format(str1[6:10],str1[10:12],str1[12:14]))
print("你今年{}周岁".format(age))
print("你的性别为{}".format(sex))

 

关于datetime

可以参考 Awakenedy大佬的博客园  https://www.cnblogs.com/awakenedy/articles/9182036.html

以上是关于Python3 身份证号处理的主要内容,如果未能解决你的问题,请参考以下文章

java源代码是给你一个身份证号,通过面板身份证号的输入,显示出该身份证主人的出生年月,省份,性别等资料

Jmeter前置处理器实战:「BeanShell 预处理程序」参数化手机号码身份证号

js身份证号电话脱敏处理(用*替换中间数据)

表格中如何根据身份证号提取前6位的行政代码数字

Excel中对身份证号的处理

关于导出csv格式文件的身份证号日期的处理