Problems with if/elif statement syntax

oj ojeeves at gmail.com
Thu Nov 22 12:16:40 CET 2007


On Nov 22, 11:09 am, Neil Webster <nswebs... at gmail.com> 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.



More information about the Python-list mailing list