On Nov 22, 12:16 pm, oj <[EMAIL PROTECTED]> wrote: > On Nov 22, 11:09 am, Neil Webster <[EMAIL PROTECTED]> wrote: > > > > > Hi all, > > > I'm sure I'm doing something wrong but after lots of searching and > > reading I can't work it out and was wondering if anybody can help? > > > I've got the following block of code: > > if a >= 20 and a < 100: > > if c == "c": > > radius = 500 > > else: > > radius = 250 > > elif (a >= 100) and (a < 500): > > radius = 500 > > elif (a >= 500) and (a < 1000): > > radius = 1000 > > elif (a >= 1000) and (a < 3000): > > radius = 1500 > > elif (a >= 3000) and (a < 5000): > > radius = 2000 > > else: > > radius = 4000 > > > No matter what value goes in for 'a' the radius always comes out as > > 4000. > > > What am I doing wrong? > > > Cheers > > > Neil > > How is 'a' getting set? > > My first thought, is that a is for some reason a string, instead of a > number, and the comparisons aren't doing what you expect. > > >>> a = "10" > >>> a < 1000 > > False > > If a is coming from user input, or from a web request or something, > make sure it's the correct type. > > -Oliver.
I would also look to write them this way if 20 <= a < 100: # do something But you should ensure A is an integer / float, you can do this by running; print type(a) -- http://mail.python.org/mailman/listinfo/python-list