编写一个Python程序,判断用户输入的8位信用卡号码是否合法,信用卡号是否合法的判断规则如下。 (1)对给定的8位信用卡号码,如43589795,从最右边数字开始,隔一位取一个数相加,如5+7+8+3=23。 (2)将卡号中未出现在第一步中的每个数字乘2,然后将相乘的结果的每位数字相加。例如,对上述例子,未出现在第一步中的数字乘2后分别为(从右至左)18、18、10、8,则将所有数字相加为1+8+1+8+1+0+8=27。 (3)将上述两步得到的值相加,如果结果的个位为0,则输入的信用卡号是有效的。 要求:用户输入的卡号必须是一次性输入,不能分成8次,每次读一个数字。
时间: 2023-06-02 11:03:05 浏览: 187
信用卡数字识别Python
card_num = input("请输入8位信用卡号码:")
if len(card_num) != 8: # 判断长度是否为8
print("卡号长度不正确")
else:
total = 0
for i in range(1, 9, 2): # 隔一位取一个数相加
total += int(card_num[-i])
for j in range(0, 8, 2): # 将未出现在第一步中的每个数字乘2,然后将相乘的结果的每位数字相加
if str(2*int(card_num[j])) != '10':
total += 2*int(card_num[j])
else:
total += 1 + 0
if total % 10 == 0: # 判断是否合法
print("输入的信用卡号是有效的")
else:
print("输入的信用卡号是无效的")
阅读全文