【问题标题】:How to bypass or ignore a number? [duplicate]如何绕过或忽略一个数字? [复制]
【发布时间】:2017-02-25 05:29:09
【问题描述】:

大家好,这里是 python noobie。我正在尝试确定用户拥有哪种类型的信用卡以及它是否有效。对于以下示例,Visa 卡以数字 4 开头,并且两张卡都有效,因为它们都以 4 开头。如果前面有零,则可以跳过它们。是否有内置功能可以绕过数字,还是我必须在每种情况下都输入?感谢您的时间。

例子:

#VISA 0004222222222222 valid
#VISA 4111111111111111 valid

卢恩斯算法

def 计算(creditNumber): 长度 = len(creditNumber) 奇数 = 0 evenSum = 0

if ( length == 0 ):
    return 0

else:
    if length % 2 == 0:
        last_number = int( creditNumber[-1])
        evenSum = evenSum + last_number

        return evenSum + calculation( creditNumber[:-1] )

    else:
        last_number = int( creditNumber[-1] )
        last_number = 2 * last_number
        addSum = last_number // 10 + last_number % 10
        oddSum = oddSum + addSum

        return oddSum + calculation( creditNumber[:-1] )

def luhnsCheck():
    creditNumber = input ( "What is your credit card number?" )

    #Check to see which type of credit card the user has

    # American Express starts with 34 or 37 
    if creditNumber[0-15] 


    # Discover starts with 6011

    # MasterCard starts with 51 or 52 or 53 or 54 or 55

    # VISA starts with 4

    creditcard_number = calculation( creditNumber )

    # Valid Card
    if creditcard_number % 10 == 0:
        print( "Valid card" )


    # Invalid Card
    else:
        print( "We do not accept that kind of card" )

luhnsCheck()

【问题讨论】:

  • 您需要 1) 进一步解释“绕过”的含义,以及 2) 向我们展示您迄今为止编写的代码。
  • 您可以使用 if else 来执行此操作。 if str[0:4]=='0000': pass else: do somthing。如果您遇到问题,请发布您的代码。
  • @SivaShanmugam - if condition: pass; else: function() 更好地表达为if not condition: function()
  • cc 验证 python 代码示例:gist.github.com/zahradil/6208954
  • @nbryans 刚刚更新了我卡在信用卡 cmets 的位置

标签: python


【解决方案1】:

您可以复制然后编号并将该编号放入列表中。然后,如果第一个数字为零,则将其从列表中删除。重复此操作,直到前面没有零。

【讨论】:

  • 那个算法没有多大意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 2020-05-20
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
相关资源
最近更新 更多