我已被指示制作基本的信用卡验证器。但是,我被困在信用卡号码的所有数字必须单独加起来可以被10整除的部分。因此,例如,12345将加起来为15,但随后返回False,而1234将返回True。
我目前的代码:
for c in cardnum:
if sum(c) % 10 != 0:
return False
return True
我现在遇到的错误结果是,对于+:'int'和'str'
,不支持的操作数类型存在TypeError答案 0 :(得分:0)
您当前的问题是c
似乎是一个字符串,因此您无法按照自己的方式添加其字符。也许你应该首先将它们转换为整数:
if sum([int(d) for d in c]) % 10 != 0:
这是一个列表理解:如果c='1234'
,方括号之间的代码会生成整数列表:[1, 2, 3, 4]
,您可以毫无问题地传递给sum()
函数。