Build a Pin Extractor - Step 19

Tell us what’s happening:

My loop will not run for all 3 poems. Or atleast my secret code is not being appended properly, I changed the first poem to run in my final print line, and all the values look correct. I just do not understand why my secret code is not combining all 3 results correctly.

Your code so far


# User Editable Region

def pin_extractor(poems):
    secret_codes = []
    for poem in poems:
        secret_code = ''
        lines = poem.split('\n')
        for line_index, line in enumerate(lines):
            words = line.split()
            if len(words) > line_index:
                secret_code += str(len(words[line_index]))
            else:
                secret_code += '0'
        secret_codes.append(secret_code)
        return secret_codes
    return secret_codes


poem = """Stars and the moon
shine in the sky
white and
until the end of the night"""

poem2 = 'The grass is green\nhere and there\nhoping for rain\nbefore it turns yellow'
poem3 = 'There\nonce\nwas\na\ndragon'

poems = [poem, poem2, poem3]

print(pin_extractor([poem, poem2, poem3]))
# print(pin_extractor(poem))

# User Editable Region


Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36

Challenge Information:

Build a Pin Extractor - Step 19

it will not because you have a return inside the loop.

You should not have a return inside the loop, as the return stops the function completely