银行卡号校验
时间: 2023-09-10 15:15:04 浏览: 155
输入银行卡号进行校验
银行卡号校验通常采用的是Luhn算法,也称为模10算法。以下是一个简单的Python实现:
```python
def luhn_checksum(card_number):
"""
计算银行卡号的校验和
"""
digits = [int(x) for x in str(card_number)] # 将卡号转换为数字列表
odd_digits = digits[-1::-2] # 取出从右往左数的奇数位数字
even_digits = digits[-2::-2] # 取出从右往左数的偶数位数字
checksum = 0
checksum += sum(odd_digits) # 奇数位数字求和
for d in even_digits:
checksum += sum([int(x) for x in str(2 * d)]) # 偶数位数字乘以2,拆分成个位数后求和
return checksum % 10 # 返回校验和
def is_valid_card_number(card_number):
"""
检查银行卡号是否合法
"""
return luhn_checksum(card_number) == 0 # 校验和为0表示卡号合法
```
使用示例:
```python
>>> is_valid_card_number('6217000010001234567')
True
>>> is_valid_card_number('6217000010001234568')
False
```
注意:这只是一个基本实现,实际上银行卡号的校验规则可能因国家、银行等而异。在实际应用中,要根据具体情况进行调整。
阅读全文