2016-10-16 8 views
-2

こんにちは人のpython noobieここ。私は、ユーザーが持っているクレジットカードの種類と、有効かどうかを判断しようとしています。次の例では、Visaカードは4で始まり、両方のカードが両方とも4で始まるので有効です。正面に0がある場合は、スキップします。番号をバイパスする機能が組み込まれているか、すべてのケースのシナリオに入力する必要がありますか?あなたの時間をありがとう。番号をバイパスまたは無視する方法はありますか?

例:

#VISA 0004222222222222 valid 
#VISA 4111111111111111 valid 

Luhnsアルゴリズム

DEF計算(creditNumber): 長= LEN(creditNumber) oddSum = 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()

+2

あなたは1)「バイパス」の意味をもっと説明し、2)これまでに書いたコードを教えてください。 – nbryans

+0

これを行うには他にも使用できます。 'if str [0:4] == '0000':else else:do somethingthing'を実行します。問題に直面している場合は、コードを投稿してください。 –

+0

@SivaShanmugam - '条件:パス; else:function() 'は' if not condition:function() 'として表現されています。 – TigerhawkT3

答えて

-1

番号をコピーしてその番号をリストに入れることができます。最初の数字が0の場合は、リストから削除します。正面にゼロがなくなるまでこれを繰り返します。

+0

のところにこだわっています。そのアルゴリズムはあまり意味がありません。 – TigerhawkT3

関連する問題