def convert_id_number(id_number): if len(id_number) != 15: return "请输入15位的身份证号码"

id_number_list = list(id_number)
id_number_list.insert(6, '1')  # 在第7位插入1,表示18位身份证号码
id_number_list.insert(17, calculate_check_digit(id_number_list))  # 计算校验位并插入

return ''.join(id_number_list)

def calculate_check_digit(id_number_list): weights = [int(i) for i in range(17, 0, -1)] # 权重列表 check_digit_sum = sum([int(id_number_list[i]) * weights[i] for i in range(17)]) # 加权求和

check_digit = str((12 - check_digit_sum % 11) % 11)  # 计算校验位
if check_digit == '10':
    check_digit = 'X'

return check_digit

id_number = input("请输入15位身份证号码: ") converted_id_number = convert_id_number(id_number) print("18位身份证号码为:", converted_id_number


原文地址: https://www.cveoy.top/t/topic/iy1U 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录