Problems with if/elif statement syntax

riquito at gmail.com riquito at gmail.com
Thu Nov 22 12:33:40 CET 2007


On 22 Nov, 12:09, 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

as Oliver pointed out, check if you're not compairing "a" as a string

I wanted to let you know that you can write the above conditions in a
more natural way, using the a<x<b idiom

e.g.

x=int(raw_input("write a number"))
if 5<=x<30:
    print 'x is between 5 and 30'



More information about the Python-list mailing list