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

Tell us what’s happening:

It keeps saying that my code doesn’t pass and that I should add an if clause… I get a valid result from my code so I don’t know where the problem has occurred

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
    ]
    return ''.join(snake_cased_char_list).strip('_')

# User Editable Region


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 Edg/126.0.0.0

Challenge Information:

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

only if not if-else, doing more than requested there is no garantee that the tests will pass

That was what I thought as well but this is returned back to me… it asks for an ‘else’ after if expression. Another problem is that I don’t know how to add the ‘pascal_or_camel…’ statement without using ‘else’. :joy:

This happens because you removed the for part. You cannot write a comprehension without that.

Yes, I have realised this. But my problem is that my code shows no errors but cannot pass the challenge

snake_cased_char_list = [
’ + char.lower() if char.isupper()
else char
for char in pascal_or_camel_cased_string
]
return ‘’.join(snake_cased_char_list).strip('
’)

Please, format your code when you share it. It’s impossible to see the indentation otherwise.

Hi, thanks for your response…but the instructions do not mention to create a new variable, so I’m not sure if that is the reason why my code still doesn’t pass. :slight_smile:

What new variable? If you still need help, share your updated code, please.