Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Python Basics (2015) Shopping List App Refactor

how to solve this question without code outside any function call??

how??

shopping_list.py
def show_help():
    # print out instructions on how to use the app
    print("What should we pick up at the store?")
    print("""
Enter 'DONE' to stop adding items.
Enter 'HELP' for this help.
Enter 'SHOW' to see your current list.
""")

def show_list(shopping_list):
    # print out the list
    print("Here's your list:")

    for item in shopping_list:
        print(item)

def add_to_list(shopping_list, new_item):
    # add new items to our list
    shopping_list.append(new_item)
    print("Added {}. List now has {} items.".format(new_item, len(shopping_list)))
    return shopping_list

show_help()

# make a list to hold onto our items
shopping_list = []

while True:
    # ask for new items
    new_item = input("> ")

    # be able to quit the app
    if new_item == 'DONE':
        break
    elif new_item == 'HELP':
        show_help()
        continue
    elif new_item == 'SHOW':
        show_list(shopping_list)
        continue
    add_to_list(shopping_list, new_item)

show_list(shopping_list)

2 Answers

Hi Jayesh,

The question asks you to put all the code from line 22 onwards inside a new method called main. To do that, add the function with main(): and then indent all the following lines. So, add main(): at line 22, indent the lines below, and that's it.

Give that a try and let me know how you get on. I'll post some code if you're still stuck.

That should work for you.

Steve.

You right... But i will say that if we only define main function and not calling main funtion anywhere.....so how the code work......means our program output..??

Hi Jayesh,

The main() method is called when the code is executed - have a look at this post that gives some guidance on that. Just like in C++ or Java, the main method determines the core of the code; it is called when the file/module is executed.

Have a read around the post, and try a search for 'python main method' - you'llfind answers way better than I can provide.

Steve.