写一段python代码实现输入15位的身份证号后将其转化为18位的身份证号并输出
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 著作权归作者所有。请勿转载和采集!