2016-10-16 4 views
-2

안녕 얘들 아 여기 python noobie. 사용자가 가지고있는 신용 카드의 유형과 유효한지 여부를 결정하려고합니다. 다음 예에서 Visa 카드는 4로 시작하고 두 카드 모두 4로 시작하기 때문에 유효합니다. 앞에 0이 있으면 건너 뜁니다. 전화 번호를 무시할 수있는 기능이 내장되어 있습니까? 아니면 모든 경우에 입력해야합니까? 시간 내 주셔서 감사합니다.번호를 무시하거나 무시하는 방법은 무엇입니까?

예 :

#VISA 0004222222222222 valid 
#VISA 4111111111111111 valid 

Luhns 알고리즘

DEF 계산 (creditNumber) 길이 = LEN (creditNumber) oddSum = 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 0 evenSum()

+2

1) '우회'로 무엇을 의미하는지 더 설명하고 2) 지금까지 작성한 코드를 알려주십시오. – nbryans

+0

다른 작업을 수행 할 수 있습니다. 'str [0 : 4] == '0000': else else : 아무것도하지 마라. 문제가 발생하면 코드를 게시하십시오. –

+0

@SivaShanmugam -'조건 : 통과; else : function()'은 if 조건 : function()으로 더 잘 표현됩니다. – TigerhawkT3

답변

-1

번호를 복사하여 목록에 넣을 수 있습니다. 그런 다음 첫 번째 숫자가 0이면 목록에서 제거하십시오. 앞에서 0이 없어 질 때까지이 작업을 반복하십시오.

+0

그 알고리즘은별로 의미가 없습니다. – TigerhawkT3

관련 문제