Concerning Dictionaries and += in Python 2.x

Dan Stromberg drsalists at gmail.com
Tue Jan 20 01:54:24 CET 2015


On Mon, Jan 19, 2015 at 4:12 PM, Luke Tomaneng <luketomaneng at gmail.com> wrote:
> I have been having a bit of trouble with the things mentioned in the title. I have written the following script for a Codecademy course:
> stock = {
>     "banana": 6,
>     "apple": 0,
>     "orange": 32,
>     "pear": 15
> }
>
> prices = {
>     "banana": 4,
>     "apple": 2,
>     "orange": 1.5,
>     "pear": 3
> }
>
> def compute_bill(food):
>     total = 0
>     for item in food:
>         if stock[item] > 0:
>             total += prices[item]
>             stock[item] = stock[item] - 1
>             return total
> Whenever I run this script, "4" is returned. It does not seem to matter what in in the list the script is run on. I have tried this on the Codecademy interpreter/emulator (I'm not sure which they use) and the repl.it interpreter, but for the same result. If anyone could find the glitch in my code, please let me know. Thanks!

You're returning total inappropriately - the first time stock[item] is > 0.



More information about the Python-list mailing list