从键盘输入某个人的身份证号,首先判断是否是一个合法的身份证号。如果是合法的身份证号,输出这个人的出生日期及性别;如果不是合法的身份证号,提示用户重新输入。若输入三次仍然为非法的身份证号,则结束输入,并输出信息“输入的身份证号无法识别”。用python
时间: 2024-12-13 16:24:14 浏览: 19
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
在Python中,你可以使用正则表达式来验证身份证号码的合法性,并通过ID号码的最后两位来确定性别和出生日期。以下是一个简单的实现示例:
```python
import re
def validate_id(id_num):
# 正则表达式匹配中国大陆的18位身份证号码
regex = r'^\d{15}(?:\d{2}[0-9Xx])?|^\d{17}(\d|x)$'
if not re.match(regex, id_num):
return False
# 判断性别,最后一位是奇数代表男性,偶数代表女性
sex = '男' if int(id_num[-2]) % 2 else '女'
# 出生年月日计算,前六位是年份,接下来的两个是月份,最后两个是日子,注意需要转换
birth_date = f"{id_num[:6]}-{id_num[6:8]}-{id_num[8:10]}"
return sex, birth_date
def get_valid_id():
for _ in range(3):
id_num = input("请输入身份证号码:")
is_valid, result = validate_id(id_num)
if is_valid:
print(f"身份证号合法,出生日期:{result},性别:{sex}")
break
else:
print("输入的身份证号无效,请重新输入。")
else:
print("输入的身份证号无法识别,程序结束。")
get_valid_id()
```
在这个脚本中,我们首先定义了一个`validate_id`函数来检查输入的身份证号码是否符合规则,然后在`get_valid_id`函数里循环请求用户输入,直到输入一个有效的身份证号码为止。如果连续三次输入都无效,就会显示相应的错误消息。
阅读全文