Learn Python List Comprehension By Building a Case Converter Program - Step 12

Tell us what’s happening:

I am having a mental block and can’t quite tell what it is i am missing. I am getting the following error.

You should call convert_to_snake_case() inside the main() function and pass aLongAndComplexString as input to the function.

I believe I am calling the convert function properly and I am using the string as the input to pass to the function. Initially I had forgotten the quotation marks and had misspelled parts of the string. As far as I can tell I am doing as the prompt says but I still get the same error. Any tips or or help to point me in the direction of what could be wrong would be a huge 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_string = ''.join(snake_cased_char_list)
    clean_snake_cased_string = snake_cased_string.strip('_')

    return clean_snake_cased_string

# User Editable Region

def main(): 

# 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/ Safari/537.36

Challenge Information:

Learn Python List Comprehension By Building a Case Converter Program - Step 12

There’s two issues with your code. Number one, the return value from convert_to_snake_case isn’t getting captured. There is a limitation in place called scope that prevents us from accessing variables from another section of code, which is designed to help save memory. That means we can’t just grab clean_snake_cased_string directly outside of the function call. We need to assign a variable to the return value from convert_to_snake_case('aLongAndComplexString') if we want to use that variable outside of that line.

Number two, it wants everything in one line. We are going to directly print the output of convert_to_snake_case('aLongAndComplexString') to the console. Not passing go, not writing it to a variable, and no collecting two hundred dollars. :wink:

I hope this helps. :slight_smile:

1 Like

Ah thank you! That was a huge help. I thought the step was asking to call the convert function and then on another line to print the result, that being the “return” value. Me thinking that the return value was the variable name haha. Its makes more sense the way you explained it. Thanks again