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 trialDarren Maguire
2,009 PointsShopping list application error.
Hi all,
I'm currently stumped with the shopping list application whereby when I output my final list it only outputs the word 'DONE' instead of the items that have been added.
I've been following Kenneth's tutorial with much attention but cannot determine where the error is coming from. Here is my code:
shopping_list = []
print("Welcome to the shopping app!")
print("To use it, simply add items to the list.")
print("To quit, simply type 'DONE' in all uppercase")
print("What would you like to enter?")
while True:
new_item = input("Item: ")
if new_item == 'DONE':
break
shopping_list.append(new_item)
print("Here are your items: ")
for item in shopping_list:
print(item)
Moderator edited: Added markdown so the code renders properly in the forums.
1 Answer
Jennifer Nordell
Treehouse TeacherHi there! The problem lies in the placement of the line that adds the item to the shopping list. It is outside of your while
loop which means it will only ever be run once. At the time it runs, new_item
is equal to "DONE" which also means that the only item to be added to your list will be "DONE" and that is what printed. But if we just indent one line, it works like a charm! Take a look:
shopping_list = []
print("Welcome to the shopping app!")
print("To use it, simply add items to the list.")
print("To quit, simply type 'DONE' in all uppercase")
print("What would you like to enter?")
while True:
new_item = input("Item: ") #Ask the user for an item
if new_item == 'DONE': #If the item is "DONE" exit the loop
break
#Note that indenting this line puts it inside the loop as opposed to outside the loop
shopping_list.append(new_item) #If the item was not "DONE" add the item to the list and run the loop again
print("Here are your items: ")
for item in shopping_list:
print(item)
Hope this helps!
Darren Maguire
2,009 PointsDarren Maguire
2,009 PointsAha! Brilliant! thanks a bunch.