That's because s IS a string. It's not been converted to a float. In [1]: s = '3.1415' In [2]: n = float(s) In [3]: type(s) Out[3]: <type 'str'> In [4]: type(n) Out[4]: <type 'float'>
Why are you avoiding the very simple try:/except: solution to this problem? On Thu, Aug 7, 2008 at 1:28 PM, Wei Guo <[EMAIL PROTECTED]> wrote: > Hi I tried the first type method but it seens that it doesn't work. Could > anyone help me about it? > >>>> s = '3.145' >>>> type(s) == type(float()) > False >>>> type(s) > <type 'str'> >>>> type(float()) > <type 'float'> >>>> > > Best regards, > > Wei > > > On 8/7/08, Wei Guo <[EMAIL PROTECTED]> wrote: >> >> Hi Thanks for Tyler and Edwin's help. >> >> For my questions, I need to import some xml file and there are floating >> number and strings in it. I need to process string and number differently. >> This is reason that I am asking question here. Is this background >> information we need for this quesions. >> >> Btw, which way is better? type or with exception ValueError? >> >> Thanks, >> >> Wei >> >> >> On 8/6/08, Tyler Breisacher <[EMAIL PROTECTED]> wrote: >>> >>> It's generally a bad idea to use "except" without naming a specific >>> exception. The exception you might expect in this case is ValueError. Any >>> other exception *should* be uncaught if it happens. By the way, this method >>> will return true for integers as well as floats. For example, isFloat('3') >>> will return 3.0. So make sure this is what you want, since it wasn't 100% >>> clear from the original message. >>> >>> >>> Wei Guo wrote: >>>> >>>> #this is a better way of testing a string for float >>>> def isFloat(s): >>>> try: >>>> s = float(s) >>>> except: >>>> return False >>>> return True >>> >>> >>> -- >>> http://mail.python.org/mailman/listinfo/python-list >> > > > -- > http://mail.python.org/mailman/listinfo/python-list > -- Stand Fast, tjg. [Timothy Grant] -- http://mail.python.org/mailman/listinfo/python-list