P
python
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>
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>