Hi everyone! So I’m at the end of the implementation of the Luhn Algorithm and I have now created this function:
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
total = sum_of_odd_digits + sum_of_even_digits
print(total)
return total % 10 == 0
And now I am here, trying to do this:
“Adjust the verify_card_number
call such that if it returns True
, print 'VALID!'
to the console. Otherwise, print 'INVALID!'
.”
Now I understand that the correct answer is this, because after some tryes I ended up with the right answer but I haven’t really understood why:
if verify_card_number(translated_card_number):
print("VALID!")
else:
print("INVALID!")
I mean, if I have to print Valid if the verify_card_number returns True, shouldn’t it be something like this?
if verify_card_number(translated_card_number) == True:
print("VALID!")
else:
print("INVALID!")
Thanks in advance.