Build a Pin Extractor - Step 17

Tell us what’s happening:

You should move the existing body of the function into the new for loop.

Your code so far


# User Editable Region

def pin_extractor(poems):
    result = []

    for poem in poems:
        secret_code = ""
        
        lines = poem.strip().split('\n')

        for line_index, line in enumerate(lines):
            words = line.split()

            if not words:
                
                secret_code += "0"
            elif len(words) > line_index:
                
                secret_code += str(len   (words[line_index]))
            else:
                
                secret_code += str(len(words[-1]))

            result.append(secret_code)

    return result


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

poem2 = """The grass is green
here and there
hoping for rain
before it turns yellow"""

poem3 = """There
once
was
a
dragon"""


codes = pin_extractor([poem1, poem2, poem3])
print(codes)


# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36

Challenge Information:

Build a Pin Extractor - Step 17

move everything that is inside the function inside the loop, do not create other things

the result variable should not exist for example

I suggest you reset the step and try again, completing thge function is for other steps

Tell us what’s happening:

always if i run my code it seems like that
You should move the existing body of the function into the new for loop. i removed result but nothing changes

Your code so far


# User Editable Region

def pin_extractor(poems):
    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'
        print(secret_code)

poem1 = """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'


pin_extractor([poem1, poem2, poem3])


# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36

Challenge Information:

Build a Pin Extractor - Step 17

You changed the original code.

Update the function argument to be poems :white_check_mark:

then create a for loop around all the current content of the function that iterates over poems and uses poem as loop variable :white_check_mark:

Why did you do that?

Your code passes the test for me if I restore the return statement.