Python使用luhn算法验证银行卡号
时间: 2024-09-20 19:18:02 浏览: 66
判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)
Luhn算法是一种用于校验信用卡、借记卡等金融卡号码是否有效的简单公式,也称为Modulus 10或Mod 10检验。Python中可以使用这个算法来验证银行卡号,其基本步骤包括:
1. 首先,从卡号的最后一位开始向左数奇数位数字保持不变,偶数位数字翻倍,如果结果超过9,则将两个数字相加。
2. 接下来,对所有处理过的数字求和,包括未翻倍的偶数位。
3. 最后,计算总和的除以10的余数。如果余数等于0,那么该卡号通过了Luhn验证;如果不等于0,说明卡号无效。
下面是一个简单的Python函数示例,用于执行Luhn验证:
```python
def luhn_algorithm(card_number):
def double_digits(num):
return num * 2 if num < 10 else num - 9
digits = [int(digit) for digit in str(card_number)]
odd_digits = digits[:-1:2]
even_digits = digits[1::2]
checksum = sum(odd_digits + [double_digits(digit) for digit in even_digits])
# 如果校验码为0,表示有效
return checksum % 10 == 0
```
阅读全文