When I am doing it for the even numbers do i have to make the int value different so it does not mess up with the previous code?
When I enter the new code in for even I pretty much copied the code from the odd digits but made it even. Now I am getting an error telling me that I need to have a print(digit) within my for loop, but I feel like I do.
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)
print(sum_of_odd_digits)
# User Editable Region
sum_of_even_digits = 0
even_digits = card_number_reversed[1::2]
for digit in even_digits:
sum_of_even_digits += int(digit)
print(digit)
# 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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Challenge Information:
Learn How to Work with Numbers and Strings by Implementing the Luhn Algorithm - Step 24
Python relies on indentation. So if you write something like:
for i in lst:
print(i)
An IndentationError is raised because Python expects an indented block after the colon. In your case, having
does not raise an indentation error, because you can still access the value of digit at the last iteration after the loop. But it’s not what you have been asked to.
I’m not sure if this answer to your question or you wanted to know something else.