【问题标题】:Python - credit card validation section issuePython - 信用卡验证部分问题
【发布时间】:2015-06-04 21:54:56
【问题描述】:

我被指示制作一个基本的信用卡验证器。但是,我被困在信用卡号的所有数字必须单独加起来才能被十整除的部分。例如,12345 加起来等于 15,但返回 False,而 1234 则返回 True。

我目前拥有的代码:

for c in cardnum:
  if sum(c) % 10 != 0:
    return False
  return True

我现在遇到的错误是结果表明 +: 'int' 和 'str' 的不支持的操作数类型存在 TypeError

【问题讨论】:

  • 什么是cardnum?及其格式?
  • cardnum 很可能是字符串列表或元组,而不是整数。

标签: python validation sum digits


【解决方案1】:

您的直接问题是c 似乎是一个字符串,因此您不能以您想要的方式将其字符相加。也许您应该先将它们转换为整数:

if sum([int(d) for d in c]) % 10 != 0:

这是一个列表解析:如果c='1234',方括号之间的代码会生成整数列表:[1, 2, 3, 4],您可以毫无问题地将其传递给sum()函数。

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 2017-04-02
    • 2021-09-24
    • 2020-09-15
    • 2014-08-14
    • 2014-01-30
    • 2016-01-22
    • 1970-01-01
    相关资源
    最近更新 更多