Neil Cerutti wrote: > On 2007-09-10, Chris Mellon <[EMAIL PROTECTED]> wrote: >> On 9/10/07, Neil Cerutti <[EMAIL PROTECTED]> wrote: >>> Agreed; but I prefer 'if y[0] == ""', absent more context and >>> better names. >> Probably should use u"" if you're going to take that route, as >> this will fail spuriously if y[0] contains a unicode string >> that can't be implicitly converted to ascii. Personally, I >> prefer the boolean check and I'll let operations fail elsewhere >> if there's a type mismatch. > > I have a quibble not with the functionality of the boolean check, > but with its expressiveness. if y[0] == "" expresses more, i.e., > that I expect y[0] to contain a Python byte string. > I have a quibble with a test that will raise an exception when the anticipated condition is true. Your test is patently absurd, as you would have discovered had you bothered to try it:
>>> y = "" >>> if y[0] == "": ... print "True" ... else: ... print "False" ... Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range >>> Further, when the string is *not* the null string the test will always return False, as you will be comparing two strings of unequal length. So, absent a solution that works, len(y) == 0 looks pretty good. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden --------------- Asciimercial ------------------ Get on the web: Blog, lens and tag the Internet Many services currently offer free registration ----------- Thank You for Reading ------------- -- http://mail.python.org/mailman/listinfo/python-list