Problems with if/elif statement syntax
Ricardo Aráoz
ricaraoz at gmail.com
Fri Nov 23 13:28:30 CET 2007
cokofreedom at gmail.com wrote:
> 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.
Hasn't anyone TRIED the code? I did, with a = 30 and c = 'x' radius
comes out as 250. So it seems the problem is somewhere else and not in
this bit of code.
More information about the Python-list
mailing list