Learn Python List Comprehension by Building a Case Converter Program - Step 20

Tell us what’s happening:

I don’t know why they are not accepting my code. Everything seems fine but it just won’t let me pass. It keeps saying to add an if clause even though i already did. Please help!

Your code so far

def convert_to_snake_case(pascal_or_camel_cased_string):
    # snake_cased_char_list = []
    # for char in pascal_or_camel_cased_string:
    #     if char.isupper():
    #       converted_character = '_' + char.lower()
    #       snake_cased_char_list.append(converted_character)
    #     else:
    #         snake_cased_char_list.append(char)
    # snake_cased_string = ''.join(snake_cased_char_list)
    # clean_snake_cased_string = snake_cased_string.strip('_')

    # return clean_snake_cased_string


# User Editable Region

    snake_cased_char_list = [
    "_" + char.lower() if char.isupper()
    else char 
    for char in pascal_or_camel_cased_string 
    ]

# User Editable Region

    return ''.join(snake_cased_char_list).strip('_')

def main():
    print(convert_to_snake_case('aLongAndComplexString'))

main()

Your browser information:

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

Challenge Information:

Learn Python List Comprehension by Building a Case Converter Program - Step 20

Look at the example again, there is no “else”

Double check the order of for, in and if in the example.

2 Likes

Hi @TheTeapot,

In the example we have spam = [i * 2 for i in iterable if i > 0].

So with the instructions, we want to match this. You used the right conditional with char.isupper(). So where would you put that according to the example? The list comprehension will take care of the else itself, so no reason to have that inside the list comprehension.

I hope this helps some. Happy coding!

3 Likes

Thanks so much, it worked!

1 Like

Agreed. Check the order!

Please don’t reply to a months old thread if you have nothing new to add, thanks!