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

Tell us what’s happening:

In this step I am instructed to change the order of the last digits of the variable ‘card number’ which has the value ‘4111-1111-4555-1142’ by indexing and I had wrote the incorrect code for it and the clue bar told me it is supposed to be [-1: -5: -1] which I wrote and it was submitted successfully and the digits were ‘2411’ but can someone explain the logic behind this answer? I still don’t understand how that answer came to be

Your code so far


# User Editable Region

def verify_card_number(card_number):
    sum_of_odd_digits = 0
    card_number_reversed = card_number[0:4:2]
    print(card_number_reversed)
    card_number_reversed = card_number[-1:-5:-]

# User Editable Region

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

    print(translated_card_number)

    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/131.0.0.0 Safari/537.36

Challenge Information:

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

Syntax for slicing is: [start-inclusive : end-non-inclusive : step]

Indices can be also negative, in which case they are counted from the end. Therefore start is at the -1 index - the last digit (2), and end at -5 index, that’s 5, but it’s not inclusive.
The default step is 1, so if it would be just [-1:-5] the result would be empty. But with step -1 - [-1:-5:-1] slice goes from the last digit up to the 5th digit from the back, but without including it.

1 Like

Oh alright, thank you, understood.