# 常见信用卡号为 13~19 位,并且每一位都必须是数字 ifnot card_number.isdigit(): print("校验失败:信用卡号只能包含数字、空格或连字符") elifnot13 <= len(card_number) <= 19: print("校验失败:信用卡号长度应为13~19位") else: # 将每一位字符转换为整数并放入列表 array = [] for i in card_number: array.append(int(i))
# 从倒数第二位开始向左计算:每隔一位乘2,大于9则减9 total = 0 for i inrange(len(array) - 2, -1, -1): number = array[i] if (len(array) - 2 - i) % 2 == 0: number *= 2 if number > 9: number -= 9 total += number