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![](https://ecs-static.teamtreehouse.com/assets/views/marketing/shared/community-banner-white-47072046c51352fe6a69f5e691ff5700b28bb11d45197d7bdf066d9ea3f72d0c.webp)
![v p](https://secure.gravatar.com/avatar/8066858df058f2fd667626af326f06bd?s=96&d=https%3A%2F%2Fecs-static.teamtreehouse.com%2Fassets%2Fcontent%2Fdefault_avatar-445fbbabfc8dc9188fb5967fe43322ee0c3e0dd1e10f378bf8343784af5a13eb.webp&r=pg)
v p
Python Development Techdegree Student 790 Pointshey my code keeps reading name "" is not defined..?
here is my code:
shopping_list = []
# create a function called add to list tha takes an item and it adds item to shopping list
def add_to_list(item):
shopping_list.append(item)
print("Added, its now {} items in the list.".format(item))
def show_help():
print("What shall we get from the store ?")
print("""
TYPE 'DONE' TO END LIST
HIT this 4 'help'
""")
show_help()
while True:
print("Item was added to the list! There are currently {} items on the list".format(len(shopping_list)))
new_item = input("> ")
if new_item == "DONE":
break
elif new_item == "HELP":
show_help()
add_to_list(new_item)
continue
print(shopping_list)
[MOD: added ```python formatting -cf]
![Steven Parker](https://uploads.teamtreehouse.com/production/profile-photos/969492/micro_tool_chess_set_2.jpg)
Steven Parker
230,688 PointsWhen posting code, use Markdown formatting to preserve the code's appearance and prevent certain characters from being consumed. An even better way to share code and make your issue easy to replicate is to make a snapshot of your workspace and post the link to it here.
![Chris Freeman](https://uploads.teamtreehouse.com/production/profile-photos/1153532/micro_image.jpg)
Chris Freeman
Treehouse Moderator 68,425 PointsAs written the code defines two functions only. The call to show_help
and the while
statement are both inside the function definition.
![M V](https://secure.gravatar.com/avatar/64feefbe6212df2badd13f4488aa7851?s=60&d=https%3A%2F%2Fecs-static.teamtreehouse.com%2Fassets%2Fcontent%2Fdefault_avatar-445fbbabfc8dc9188fb5967fe43322ee0c3e0dd1e10f378bf8343784af5a13eb.webp&r=pg)
M V
Courses Plus Student 1,756 Pointsyour shopping list is already being printed through show_help() thats where your string is starting so you shouldnt be printing your shopping list at the end of the same block.
try calling new_item with your add_to_list function.
1 Answer
![Steven Parker](https://uploads.teamtreehouse.com/production/profile-photos/969492/micro_tool_chess_set_2.jpg)
Steven Parker
230,688 PointsI don't see what would cause that error. But as Chris pointed out, there's just 2 functions and no main program, so it won't really do anything as it is.
The code that should be the main program is indented too far.
v p
Python Development Techdegree Student 790 Pointsv p
Python Development Techdegree Student 790 Pointsshopping_list = []
create a function called add to list tha takes an item and it adds item to shopping list
def add_to_list(item): shopping_list.append(item) print("Added, its now {} items in the list.".format(item))
def show_help(): print("What shall we get from the sto ?") print(""" TYPE 'DONE' TO END LIST HIT this 4 'help' """)
show_help() while True: print("Item was added to the list! There are currently {} items on the list".format(len(shopping_list))) new_item = input("> ") if new_item == "DONE": break elif new_item == "HELP": show_help() add_to_list(new_item) continue
print(shopping_list)