Tell us what’s happening:
I get passed these tests
verify_card_number(‘453914889’) should return VALID!
verify_card_number(‘4111-1111-1111-1111’) should return VALID!
verify_card_number(‘453914881’) should return INVALID!
verify_card_number(‘1234 5678 9012 3456’) should return INVALID!
But not these, when they passed for each specific test
verify_card_number should return VALID! when called with a valid credit card number
verify_card_number should return INVALID! when called with an invalid credit card
Any idea?
Your code so far
def verify_card_number(number):
number = number.replace('-', '').replace(' ', '')
check_digit = int(number[-1])
number = number[:-1]
check_sum = 0
i = len(number) - 1
double = True
while i >= 0:
if double:
digit = int(number[i]) * 2
double = False
else:
digit = int(number[i])
if digit > 9:
digit -= 9
check_sum += digit
i -= 1
check_sum += check_digit
if check_sum % 10 == 0:
return 'VALID!'
return 'INVALID!'
Your browser information:
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Challenge Information:
Implement the Luhn Algorithm - Implement the Luhn Algorithm