Why isn't this code working how I want it to?

Mark Lawrence breamoreboy at yahoo.co.uk
Sat Oct 12 05:39:48 EDT 2013


On 12/10/2013 09:56, reubennottage at gmail.com wrote:
> I've been working on a program and have had to halt it due a slight problem. Here's a basic version of the code:
>
> a = 'filled'
> b = 'filled'
> c = 'empty'
> d = 'empty'
> e = 'filled'
> f = 'empty'
> g = 'filled'
>
> testdict = {a : 'apple' , b : 'banana' , c : 'cake' , d : 'damson' , e : 'eggs' , f : 'fish' , g : 'glue'}
>
> Now what I want to do, is if a variable is filled, print it out. This however isn't working how I planned. The following doesn't work.
>
> for fillempt in testdict:
>      if fillempt == 'filled':
>          print(testdict[fillempt])
>
> All this does though, is print glue, where I'd want it to print:
>
> apple
> banana
> eggs
> glue
>
> Perhaps a dictionary isn't the best way to do this.. I wonder what else I can do...
>
> Thanks for any help.
>

You've effectively set up a dictionary with keys 'filled' and 'entries' 
which you can see if you run this loop

for key, value in testdict.items():
     print(key, value)

which gives me this

empty fish
filled glue

I'm too lazy to type anything else so please refer to this 
http://stackoverflow.com/questions/843277/how-do-i-check-if-a-variable-exists-in-python. 
  I'll also leave the argument over whether it's a variable or a name to 
others :)

-- 
Roses are red,
Violets are blue,
Most poems rhyme,
But this one doesn't.

Mark Lawrence




More information about the Python-list mailing list