python输入身份证号,输出出生年月,及性别。7-14位数字:代表身份证持有人的出生年、月、日。倒数第二位第17位奇数代表男性M,偶数代表女性F
时间: 2024-11-11 21:39:35 浏览: 24
在Python中,为了实现这个功能,你可以使用正则表达式来解析身份证号码,并通过7到14位提取出生日期,最后根据第17位的奇偶性确定性别。以下是一个简单的示例:
```python
import re
def get_info(id_number):
# 使用正则表达式匹配并分割身份证号
pattern = r"^\d{6}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)(\d{3})$"
match = re.match(pattern, id_number)
if not match:
return "身份证号码无效"
birth_year = int(match.group(2)) + (int(match.group(3)) - 1) * 100 # 根据月份调整年份
birth_month = int(match.group(4))
birth_day = int(match.group(5))
# 第17位判断性别
gender = 'F'
checksum = sum(int(digit) for digit in str(id_number[:-1])) % 11
if checksum == 1 and id_number[-1].isdigit():
gender = 'M'
return f"出生年月:{birth_year}{birth_month:02d}{birth_day:02d}, 性别:{gender}"
# 示例身份证号
id_number = input("请输入身份证号码:")
print(get_info(id_number))
阅读全文