Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Python Collections (Retired) Lists Redux Shopping List Take Three

Igor Bochenek
Igor Bochenek
3,960 Points

Shopping list 3

shopping_list = []

def show_help(): print("\nSeperate each item with a comma.") print("Type DONE to quit, SHOW to see current list, and HELP to get this message")

def show_list(): count = 1 for item in shopping_list: print("{}: {}".format(count, item)) count += 1

print("Give me the list of things you want to shop for.")
show_help()

show_list()

while True: new_stuff = input("> ")

if new_stuff == "DONE":
    print("\nHere is your list:")
    show_list()
    break
elif new_stuff == "SHOW":
    show_list()
    continue
elif new_stuff == "HELP":
    show_help()
    continue
else:
    new_list = new_stuff.split(",")
    index = input("\nAdd this at a certain spot? \nPress enter to close,"
                      "or give me a number. \nCurently {} items in the list".format(len(shopping_list)))

    if index:
      spot = int(index) - 1
      for item in new_list:
        shopping_list.insert(spot, item.strip())
        spot += 1

    else:
      for item in new_list:
        shopping_list.append((item.strip()))

ValueError: invalid literal for int() with base 10: 'DONE'

2 Answers

Igor Bochenek
Igor Bochenek
3,960 Points

what am i doing wronf ?

I noticed a few things, When you enter something other than a number, at this part of your code spot = int(index) - 1, it would try to convert it to a number and that's where you would get the ValueError, you want to do a try except to catch the value error.

Also at the end it, you should also increment spot when you append a new item to the list. hope that helps.