编写一个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 07:03:05 浏览: 176
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("输入的信用卡号是无效的")
相关问题
编写一个python程序,判断用户输入的8位信用卡号码是否合法
好的,以下是一个简单的 Python 程序,用于验证用户输入的 8 位信用卡号码是否合法:
```python
def validate_credit_card_number(card_number):
if len(card_number) != 8:
return False
try:
int(card_number)
except ValueError:
return False
return True
```
你可以将用户输入的信用卡号码作为参数传递给 `validate_credit_card_number` 函数,如果该函数返回 `True`,则表示该信用卡号码是合法的。
编写一个Python程序,判断用户输入的8位信用卡号码是否合法,信用卡号是否合法的判断规则如下。 (1)对给定的8位信用卡号码,从最右边数字开始,隔一位取一个数相加。 (2)将卡号中未出现在第一步中的每个数字乘2,然后将相乘的结果的每位数字相加。 (3)将上述两步得到的值相加,如果结果的个位为0,则输入的信用卡号是有效的。 要求:用户输入的卡号必须是一次性输入,不能分成8次,每次读一个数字。
num = input("请输入8位信用卡号码:")
if len(num) != 8:
print("输入错误,请输入8位数字")
else:
# 第一步
sum_1 = 0
for i in range(1, 8, 2):
sum_1 += int(num[i])
# 第二步
sum_2 = 0
for i in range(0, 8):
if i % 2 == 0:
continue
n = int(num[i]) * 2
if n >= 10:
sum_2 += n // 10 + n % 10
else:
sum_2 += n
# 第三步
sum_3 = sum_1 + sum_2
if sum_3 % 10 == 0:
print("输入的信用卡号是有效的")
else:
print("输入的信用卡号无效")
阅读全文