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

TypeError in shopping_list 2 code

Hi Everyone,

I am getting an error in the shopping list 2 code, although I've followed the video steps. Please make suggestions about what the error is about.

Here is the code:

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

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' to show these help lines. Enter 'SHOW' to show items added so far.""")

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

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

show_help()

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()
    continue
add_to_list(new_item)        # Line 38!!!!!!!!!!!

show_list()

Here's the error message:
treehouse:~/workspace$ python shopping_list.py
What should we pick up at the store?

      Enter 'DONE' to stop adding items.                                                                
      Enter 'HELP' to show these help lines.                                                            
      Enter 'SHOW' to show items added so far.                                                          

cologne
Traceback (most recent call last):
File "shopping_list.py", line 38, in <module>
add_to_list(new_item)
TypeError: add_to_list() takes 0 positional arguments but 1 was given

Thanks for your help!!

Mohammad

The add_to_list function doesn't take any arguments. You simply have to call it like this

add_to_list()

1 Answer

Steven Parker
Steven Parker
243,318 Points

As the error message indicates, there's an argument mismatch between the definition and the call. You can resolve it 2 ways:

If you want to be able to pass the item as a parameter, alter your definition to include it:

def add_to_list(new_item):

Otherwise, if you'd like it to use the global variable instead you can change the way you call it, as Nicolas suggested:

    add_to_list()  # line 38