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
Mohammad Aslam
6,053 PointsTypeError 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
1 Answer
Steven Parker
243,318 PointsAs 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
Nicolas Seglenieks
1,048 PointsNicolas Seglenieks
1,048 PointsThe add_to_list function doesn't take any arguments. You simply have to call it like this
add_to_list()