# Stocking out

#1

``````shopping_list = ["banana", "orange", "apple"]

stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}

prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}

# Write your code below!
def compute_bill(food):
total = 0
for items in food:
if stock[items] > 0:
total += prices[items]
stock[items] = stock[items] - 1
return stock[items]

Can someone tell me what I'm doing wrong? The error says that the function is returning 14 instead of 7.

Thanks,

-Zach

Stocking out
#2

a function ends the moment a return keyword is reached. Currently your return the stock of the last item, you should return total

#3

Gotcha, so I should only really return once per "for" statement? or really once per function? Just trying to understand the concepts and such.

#4

By default a function returns None, so if we want to return something different, we can use `return value`, value being what you want to return, in this case total, after the loop. Not the number of a item in a stock

placing return in the loop will break the loop, you most certainly don't want this. The whole loop needs to run to calculate the correct total

#5

I need help on this...

#6

Lets say you are in my position, and someone posted this, how would you help this person? This person provided no details about what (s)he does and doesn't understand, no code, no error message. In other words, no useful details

If you would have posted this on stackoverflow, you would have been shot down

If you want help, please go here, make a new topic, fill in the templates so we have actually details to help you

#7

That's rude but I really do need help on this lesson

#8

And how do you expect help with the information you provided?

#9

I got past it nvm

#10

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.