Good Z wrote:
Hello,
I am having problem in using is. Here is what i am doing.

Short answer: Use == for equality. Don't use "is". Ever! (Especially if you are a newbie.)

Longer answer: In a dozen years of programming Python, the only time I use "is" is when testing for something like if x is None
but, even then
 if x == None
works just as well, and in any case, there is usually a better way. (See below.)

Don't use "is" until you can explain the following
>>> 11 is 10+1
True
>>> 100001 is 100000+1
False



x=''
if x is None or x is '':
        return 1

Both None and an empty string (and empty lists, empty dictionaries, empty sets, and numeric values of 0 and 0.0) all evaluate a False in an if statement, so the above if statement can be written as

 if not x:
     return 1

If you have to test for None, just do
 if not x:

If you have to differentiate between a value of None and something that evaluates to False (e.g., and empty list) then do
 if x is None:
   # handle None explicitly
 elif not x:
   # handle empty list


The above statement does not return value 1.

If i changed the above check to
if x == None or x == '':
        return 1
Now it works fine.

Any idea. What is happening here. I am using python 2.4.4 on ubuntu.

Mike

------------------------------------------------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. <http://us.rd.yahoo.com/evt=51733/*http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ%20>
------------------------------------------------------------------------

--
http://mail.python.org/mailman/listinfo/python-list

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to