On Mon, 02 Apr 2007 13:48:30 -0700, Steven Howe wrote: > how about just testing it's length? > >>> from types import StringType > > def stringTest(x): > ... if type(x) == StringType: > ... if len(x) == 0: > ... print 'Empty String' > ... else: > ... print 'Not Empty String' > ... else: > ... print 'value not String Type'
Too complicated. You don't need to import StringType, nor do you need to explicitly ask for the length. Worse, you reject anything that isn't *precisely* a string. Other string classes, like Unicode and subclasses, are wrongly rejected. Try this instead: def stringTest(x): if isinstance(x, basestr): if x: print "Not an empty string." else: print "An empty string." else: print "Not a string." Here's an even shorter version, saving one line. def stringTest(x): if not isinstance(x, basestring): print "Not a string." elif x: print "Not an empty string." else: print "An empty string." And here's an even shorter version. def stringTest(x): if not isinstance(x, basestring): print "Not a string." else: print {True: "Not a", False: "A"}[bool(x)] + "n empty string." Notice, though, that shorter code is not always better. -- Steven D'Aprano -- http://mail.python.org/mailman/listinfo/python-list