On Feb 15, 5:46 pm, pyt...@bdurham.com wrote: > What's the Pythonic way to determine if a string is a number? By > number I mean a valid integer or float. > > I searched the string and cMath libraries for a similar function > without success. I can think of at least 3 or 4 ways to build my > own function. > > Here's what I came up with as a proof-of-concept. Are there > 'better' ways to perform this type of test? > > Thanks, > Malcolm > > <code> > def isnumber( input ): > try: > if '.' in input: > num = float( input ) > else: > num = int( input ) > return True > > except ValueError: > return False > > if __name__ == '__main__': > tests = """ > 12 > -12 > -12.34 > .0 > . > 1 2 3 > 1 . 2 > just text > """ > > for test in tests.split( '\n' ): > print 'test (%0s), isnumber: %1s' % \ > ( test.strip(), isnumber( test ) ) > > </code>
Their is a good answer given on Rosetta Code here: http://www.rosettacode.org/wiki/IsNumeric#Python - Paddy. -- http://mail.python.org/mailman/listinfo/python-list