Learn How to Work with Numbers and Strings by Implementing the Luhn Algorithm - Step 32

Tell us what’s happening:

I don’t understand what is wrong with my code, can you please help me ? The return is inside the function

Your code so far

def verify_card_number(card_number):
    sum_of_odd_digits = 0
    card_number_reversed = card_number[::-1]
    odd_digits = card_number_reversed[::2]

    for digit in odd_digits:
        sum_of_odd_digits += int(digit)

    sum_of_even_digits = 0
    even_digits = card_number_reversed[1::2]
    for digit in even_digits:
        number = int(digit) * 2
        if number >= 10:
            number = (number // 10) + (number % 10)
        sum_of_even_digits += number

# User Editable Region

    total = sum_of_odd_digits + sum_of_even_digits
    print(total)
    return 0 == (total%10)    

# User Editable Region

def main():
    card_number = '4111-1111-4555-1142'
    card_translation = str.maketrans({'-': '', ' ': ''})
    translated_card_number = card_number.translate(card_translation)

    verify_card_number(translated_card_number)

main()

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:138.0) Gecko/20100101 Firefox/138.0

Challenge Information:

Learn How to Work with Numbers and Strings by Implementing the Luhn Algorithm - Step 32

1 Like

try without parentheses

You’re very close! Right now, the function is just printing the total and not returning it. After printing the total, your code returns a Boolean (True or False), not the total itself. If you want the function to return the total value, you need to change the code to return total instead of the Boolean. Let us know if you still need help. Good luck!

hi @smit_007 , you may want to check out the curriculum before giving suggestions, the steps want specific things