python编程实现对用户输入的 【身份证号】进行检验。
时间: 2024-04-10 08:32:08 浏览: 39
可以使用以下代码来实现对用户输入的身份证号进行检验:
```python
def validate_id_number(id_number):
# 检查身份证号长度是否为18位
if len(id_number) != 18:
return False
# 检查前17位是否都是数字
if not id_number[:17].isdigit():
return False
# 检查最后一位校验码是否正确
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
check_sum = sum(int(id_number[i]) * weights[i] for i in range(17)) % 11
check_dict = {0: '1', 1: '0', 2: 'X', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'}
if check_dict[check_sum] != id_number[17].upper():
return False
return True
# 测试
id_number = input("请输入身份证号码:")
if validate_id_number(id_number):
print("身份证号码有效!")
else:
print("身份证号码无效!")
```
这段代码会首先检查身份证号的长度是否为18位,然后检查前17位是否都为数字。最后,它会计算校验码并与身份证号的最后一位进行比较,如果匹配则认为身份证号有效,否则无效。
阅读全文