- Have you ever wondered how websites validate your credit card number when you shop online? They don’t check a massive database of numbers, and they don’t use magic. In fact, most credit providers rely on a checksum formula for distinguishing valid numbers from random collection of digits (or typing mistakes).
【验证信用卡】In this lab, you will implement a validation algorithm for credit cards. The algorithm follows these steps:
-
- Double the value of every second digit beginning with the rightmost.
- Add the digits of the doubled values and the undoubled digits from the original number.
- Calculate the modulus of the sum divided by 10.
sum = 0
if len(a)%2==0:#判断信用卡位数,偶数位
for i in range(0,len(a)):#遍历所有
if i % 2 == 0:#需要*2的位数
a_10 =(int(a[i])*2)//10#十位,若无则为0
a_1 = (int(a[i])*2)%10#个位
sum +=(a_10+a_1)#求和
else:
sum +=int(a[i])#不需要*2的位数求和
else :#信用卡位数,奇数位
if len(a)%2!=0:
for i in range(0,len(a)):
if i % 2 != 0:
a_10 =(int(a[i])*2)//10
a_1 = (int(a[i])*2)%10
sum +=(a_10+a_1)
else:
sum +=int(a[i])
if sum%10==0:
print('是信用卡')
else:
print('不是信用卡')
a = input('输入卡号:')
is_valid(a)