我是一个初级Python学习者,目前正在研究Luhn算法来检查信用卡验证。我写了大部分代码,但是我有两个错误,第一个是赋值前引用num。我得到的第二个是类型为'\io.TextIOWrapper'的对象没有len()。我们将非常感谢您的进一步帮助/指导。
以下是Luhn算法(Mod10 Check)的步骤从右到左每隔两位数。如果这个“翻倍”结果是两位数,则将两位数相加
得到一个数字的数字。
现在将步骤1中的所有单个数字相加。
将信用卡号码中从右到左的奇数位数相加。
将步骤2和步骤3的结果相加。
如果步骤4的结果可被10整除,则卡号有效;否则无效。
我的输出应该是Card Number Valid / Invalid
--------------------------------------
3710293 Invalid
5190990281925290 Invalid
3716820019271998 Valid
37168200192719989 Invalid
8102966371298364 Invalid
6823119834248189 Valid
这是密码。def checkSecondDigits(num):
length = len(num)
sum = 0
for i in range(length-2,-1,-2):
number = eval(num[i])
number = number * 2
if number > 9:
strNumber = str(number)
number = eval(strNum