Is there a quick way to find if a string is a real number, short of reading it a character at a time and doing isdigit()
on each character? I want to be able to test floating point numbers, for example 0.03001
.
>>> a = "12345" # good number
>>> int(a)
12345
>>> b = "12345G" # bad number
>>> int(b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '12345G'
You can do that:
def isNumber(s):
try:
int(s)
except ValueError:
return False
return True
If you want a float number, replace int
by float
(thanks to @cobbal).
If you mean an float as a real number this should work:
def isfloat(str):
try:
float(str)
except ValueError:
return False
return True
Note that this will internally still loop your string, but this is inevitable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With