How can I check if a string has a numeric value in it in Python?
Question:
For example, I want to check a string and if it is not convertible to integer(with int()
), how can I detect that?
Answers:
You can always try
it:
try:
a = int(yourstring)
except ValueError:
print "can't convert"
Note that this method outshines isdigit
if you want to know if you can convert a string to a floating point number using float
Use the .isdigit()
method:
>>> '123'.isdigit()
True
>>> '1a23'.isdigit()
False
Quoting the documentation:
Return true if all characters in the string are digits and there is at least one character, false otherwise.
For unicode
strings or Python 3 strings, you’ll need to use a more precise definition and use the unicode.isdecimal()
/ str.isdecimal()
instead; not all Unicode digits are interpretable as decimal numbers. U+00B2 SUPERSCRIPT 2 is a digit, but not a decimal, for example.
For example, I want to check a string and if it is not convertible to integer(with int()
), how can I detect that?
You can always try
it:
try:
a = int(yourstring)
except ValueError:
print "can't convert"
Note that this method outshines isdigit
if you want to know if you can convert a string to a floating point number using float
Use the .isdigit()
method:
>>> '123'.isdigit()
True
>>> '1a23'.isdigit()
False
Quoting the documentation:
Return true if all characters in the string are digits and there is at least one character, false otherwise.
For unicode
strings or Python 3 strings, you’ll need to use a more precise definition and use the unicode.isdecimal()
/ str.isdecimal()
instead; not all Unicode digits are interpretable as decimal numbers. U+00B2 SUPERSCRIPT 2 is a digit, but not a decimal, for example.