2024-09-27 02:21:41 发布
网友
我奉命做一个基本的信用卡验证器。然而,我被卡在信用卡号码的所有数字必须单独相加才能被10整除的部分。例如,12345加起来等于15,然后返回False,而1234将返回True。你知道吗
我目前拥有的代码:
for c in cardnum: if sum(c) % 10 != 0: return False return True
我现在遇到的错误是这样一个结果:对于+:“int”和“str”,不支持的操作数类型存在TypeError
你眼前的问题是c似乎是一个字符串,因此你不能按你想要的方式添加它的字符。也许你应该先把它们转换成整数:
c
if sum([int(d) for d in c]) % 10 != 0:
这是一个列表理解:如果c='1234',方括号之间的代码生成整数列表:[1, 2, 3, 4],您可以毫无问题地将其传递给sum()函数。你知道吗
c='1234'
[1, 2, 3, 4]
sum()
你眼前的问题是
c
似乎是一个字符串,因此你不能按你想要的方式添加它的字符。也许你应该先把它们转换成整数:这是一个列表理解:如果
c='1234'
,方括号之间的代码生成整数列表:[1, 2, 3, 4]
,您可以毫无问题地将其传递给sum()
函数。你知道吗相关问题 更多 >
编程相关推荐