Build a Pin Extractor - Step 17

Tell us what’s happening:

I tried refactoring by placing the existing function body inside the new for loop, but the tests are still not passing. It seems I’m missing a specific requirement. Could you help me understand the expected structure for this task?

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'
    return secret_code

# User Editable Region

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'

# print(pin_extractor(poem))

Your browser information:

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

Challenge Information:

Build a Pin Extractor - Step 17

Github Link: freeCodeCamp/curriculum/challenges/english/blocks/workshop-pin-extractor/68599f0fc7479410b2269742.md at main · freeCodeCamp/freeCodeCamp · GitHub

what about this line? is this inside the loop?

the return secret_code is part of the function. But even I do Two levels of indentation (8 spaces): Part of the for poem in poems: loop, I still can’t pass the running test.

can you share your code with the return properly indented to be inside the loop?

you have also changed the relative indentation for these lines, the if/else was inside that loop

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'



    return secret_code

Done and it works. Thank you!