信用卡号是否合法的判断规则为: a) 对给定的8位信用卡号码,如43589795
,从最右边数字开始,隔一位取一个数相加,如5+7+8+3=23
。 b) 将卡号中未出现在第一步中的每个数字乘2
,然后将相乘的结果的每位数字相加。例如,对上述例子,未出现在第一步中的数字乘2
后分别为(从右至左)18
、18
、10
、8
,则将所有数字相加为1+8+1+8+1+0+8=27
。 c) 将上述两步得到的数字相加,如果得数个位为0
,则输入的信用卡号是有效的。
请在指定位置完成函数的编写,判断用户输入的8
位信用卡号码是否合法。
def validCreditCard(num):
num1 = str(num)
s = []
for i in num1:
s += [int(i)]
x1 = sum(s[::-2])
x2 = 2 * sum(s[-2::-2])
if (x1 + x2) % 10 == 0:
valid = True
else:
valid = False
return valid