Hi, I am on step 19 of the Luhn Algorithm and I am trying to create a for loop to iterate over each digit in the odd_digits variable. I believe I am missing something in my code, because it displays an error each time I check my code. I am currently trying
for odd_digits in card_number:
print(card_number)
Your code so far
# User Editable Region
def verify_card_number(card_number):
sum_of_odd_digits = 0
card_number_reversed = card_number[::-1]
for odd_digits in card_number:
print(card_number)
# 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_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Challenge Information:
Learn How to Work with Numbers and Strings by Implementing the Luhn Algorithm - Step 19
Use a for loop to iterate over each digit in the odd_digits list. Move your print call from the previous step into the for loop, and change it to print each digit.
Notice the words for loop, digit and odd_digits. Also, notice the last three words print each digit. There’s digit again associated with each (iteration)
You wrote
Which loops over card_number (instead of odd_digits) and each time it sets odd_digits (instead of digit) and then you print card_number (instead of digit)
In Python, the thing that a for loops with, is called iterator (something that it can be iterate over, like a list or collection). Thus it gets usually named in plural, to denote multiple items.
In the example you posted, card_number should be card_numbers if it were correct.
A convention in Python when you iterate over a list of items is to also name the current item in single form from the list, in this case would be card or card_number. If we were to place everything together, the example would show as
for card_number in card_numbers:
print(card_number)