On Tue, 2006-10-17 at 09:30, abcd wrote: > x = None > result = (x is None and "" or str(x)) > > print result, type(result) > > --------------- > OUTPUT > --------------- > None <type 'str'>
The "condition and result1 or result2" trick only works if result1 is an expression with a True boolean value. The empty string has a false boolean value. You could force result1 to have a true boolean value by sticking it into a list thusly: result = (x is None and [""] or [str(x)])[0] But that's ugly. Use Python 2.5 where there is a true conditional expression or find another way to solve your problem. -Carsten -- http://mail.python.org/mailman/listinfo/python-list