python第二代居民身份证
时间: 2023-11-30 13:43:11 浏览: 90
读第二代身份证源码(C#)
4星 · 用户满意度95%
根据提供的引用内容,Python并不能直接生成第二代居民身份证号码。但是,我们可以根据第二代身份证的生成规则,编写Python代码来生成第二代身份证号码。
以下是一个生成第二代身份证号码的Python函数:
```python
def generate_id_card(birthday, gender):
"""
根据生日和性别生成第二代身份证号码
:param birthday: 出生日期,格式为YYYYMMDD
:param gender: 性别,1为男性,0为女性
:return: 第二代身份证号码
"""
# 第一步,在原十五位数身份证的第六位数后面插入19或20,这样身份证号码即为十七位数
if int(birthday[0:4]) >= 2000:
id_card = birthday + str(int(gender) + 4)
else:
id_card = birthday + gender
# 第二步,按照国家规定的统一公式计算出第十八位数,作为校验码放在第二代身份证的尾号
id_card_list = list(id_card)
weight = [int(i) for i in '7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2'.split()]
check_code = '10X98765432'
sum = 0
for i in range(17):
sum += int(id_card_list[i]) * weight[i]
id_card_list.append(check_code[sum % 11])
return ''.join(id_card_list)
```
使用该函数,我们可以根据指定的出生日期和性别生成第二代身份证号码。例如:
```python
id_card = generate_id_card('19900101', '1')
print(id_card) # 输出:'199001019876543210'
```
阅读全文