Python Forum
NameError! shopping_list not defined - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: NameError! shopping_list not defined (/thread-2677.html)



NameError! shopping_list not defined - kotwenyo - Apr-02-2017

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 shop():
   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)

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


#define new main function
def main():
   #ident correctly given new main function definition
   show_help()
   shop()
   show_list(shopping_list)

main()
Moderator snippsat: Added code tag look at BBcode help
and Smart Questions.



RE: NameError! shopping_list not defined - zivoni - Apr-02-2017

The error is quite clear - your dont have shopping_list defined when you call show_list(shopping_list) on line 46. Perhaps you should add return statetement with shopping_list into your shop() function and use
shopping_list = shop()
show_list(shopping_list)
in your main function?