def verse(day):
    """Produce the verse for the given day"""

    ordinal = [
        'first',
        'second',
        'third',
        'fourth',
        'fifth',
        'sixth',
        'seventh',
        'eighth',
        'ninth',
        'tenth',
        'eleventh',
        'twelfth',
    ]

    gifts = [
        'A partridge in a pear tree.',
        'Two turtle doves,',
        'Three French hens,',
        'Four calling birds,',
        'Five gold rings,',
        'Six geese a laying,',
        'Seven swans a swimming,',
        'Eight maids a milking,',
        'Nine ladies dancing,',
        'Ten lords a leaping,',
        'Eleven pipers piping,',
        'Twelve drummers drumming,',
    ]

    # First part of the verse is a constant
    day_verse = [
        f'On the {ordinal[day - 1]} day of Christmas,', 
        f'My true love gave to me,'
    ]

    # extend takes in a list as an arg, expands it, 
    # and adds each element to the new list
    # day is used to slice gifts, that is then reversed to
    # count down
    # gifts[:3] would return 'A partridge in a pear tree.',
    # 'Two turtle doves,', 'Three French hens,', this slice
    # is then reversed added to day_verse
    day_verse.extend(reversed(gifts[:day]))

    # if there are multiple days, verse needs to have 
    # 'And a partridge...' not just 'A'
    if day > 1:
        day_verse[-1] = 'And ' + day_verse[-1].lower()

    return '\n'.join(day_verse)


    # My first attempt below, using dicts adds to readability,
    # same with if block down below, however lists would be
    # better off to utilize slicing and get rid of the 
    # for loop

    # ordinal = {
    #     1 : 'first',
    #     2 : 'second',
    #     3 : 'third',
    #     4 : 'fourth',
    #     5 : 'fifth',
    #     6 : 'sixth',
    #     7 : 'seventh',
    #     8 : 'eighth',
    #     9 : 'ninth',
    #     10 : 'tenth',
    #     11 : 'eleventh',
    #     12 : 'twelfth',
    # }

    # gifts = {
    #     1 : 'partridge in a pear tree.',
    #     2 : 'Two turtle doves,',
    #     3 : 'Three French hens,',
    #     4 : 'Four calling birds,',
    #     5 : 'Five gold rings,',
    #     6 : 'Six geese a laying,',
    #     7 : 'Seven swans a swimming,',
    #     8 : 'Eight maids a milking,',
    #     9 : 'Nine ladies dancing,',
    #     10 : 'Ten lords a leaping,',
    #     11 : 'Eleven pipers piping,',
    #     12 : 'Twelve drummers drumming,',
    # }

    # day_verse = [
    #     f'On the {ordinal[day]} day of Christmas,', 
    #     f'My true love gave to me,'
    # ]

    # for n in range(day, 0, -1):
    #     if day > 1 and n > 1:
    #         day_verse.append(f'{gifts[n]}')
    #     elif day > 1 and n == 1:
    #         day_verse.append(f'And a {gifts[n]}')
    #     else:
    #         day_verse.append(f'A {gifts[n]}')

    # return '\n'.join(day_verse)