> >>> x=('i' in 'i') > >>> x > True > >>> y='i' > >>> x==y > False
you're right when you talk about "casting" altho that's not what python does. it merely performs an object value comparison when you use '=='. for example, change your code above to: >>> True == 'i' # because this is what you're really doing with x==y False so the reason why you get a false is that those 2 values *are* different from each other, even if their boolean truthfulness may be the same: >>> bool(True) == bool('i') True how's *that* for casting? :-) just remember that the interpreter compares *values* and not boolean truthfulness, and you'll be ok. if you really want the latter, then use bool(). hope this helps! -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 http://corepython.com wesley.j.chun :: wescpy-at-gmail.com python training and technical consulting cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor