Luhns算法,mod 10检查

问题描述

我必须为我的课程计算思维分配作业,但是当我输入此有效信用卡号作为输入时,它总是说该号码无效,有人知道为什么吗?

def ask_user():
string = (str(input("Please input your credit card number")))
numbers = list(map(int,string.split()))
if card_length(numbers):
    validation(numbers)
else:
    print("The credit card number you entered is invalid")

“”“ 此功能以信用卡号为参数,并检查信用卡号的长度 看看它是否有效。 “”“

def card_length(numbers):
for i in numbers:
    if 13 <= i <= 16:
        if numbers[0] == 4 or numbers[0] == 5 or numbers[0] == 6 or (numbers[0] == 3 and numbers[1] == 7):
            return True
else:
    return False

“”“ 此方法获取数字列表,并告诉用户它是否与打印语句有效组合 “”“

def validation(numbers):
odd_results = odd_digits(numbers)
even_results = even_digits(numbers)
sum_of_results = odd_results + even_results
if sum_of_results % 10 == 0:
    print("This credit card number is valid")
else:
    print("This credit card number is invalid")

“”“ 此功能将信用卡号作为字符串列表参数,并将所有 其中的偶数位。 “”“

def even_digits(numbers):
length = len(numbers)
sumEven = 0
for i in range(length - 2,-1,-2):
    num = eval(numbers[i])
    num = num * 2
    if num > 9:
        strNum = str(num)
        num = eval(strNum[0] + strNum[1])
        sumEven += num
    return sumEven

“”“ 此功能将信用卡号作为字符串列表参数,并将所有 其中的奇数位。 “”“

def odd_digits(numbers):
length = len(numbers)
sumOdd = 0
for i in range(length - 1,-2):
    numbers += sumOdd
return sumOdd

“”“ 这是定义我们第一个函数ask_user的主要函数 “”“

 def main():
 ask_user()



if __name__ == '__main__':
main()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)