Problems with if/elif statement syntax

cokofreedom at gmail.com cokofreedom at gmail.com
Thu Nov 22 06:39:23 EST 2007


On Nov 22, 12:33 pm, "riqu... at gmail.com" <riqu... at gmail.com> wrote:
> 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'

Argh, I really dislike raw_input. Though it helps to remind me to use
Try:Except blocks a lot.



More information about the Python-list mailing list