如何在python中检查字符串中是否有数值?

How can I check if a string has a numeric value in it in Python?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I check if a string is a number in Python?
Python - Parse String to Float or Int

例如,我想检查一个字符串,如果它不能转换为整数(使用int()),我该如何检测它?


使用.isdigit()方法:

1
2
3
4
>>> '123'.isdigit()
True
>>> '1a23'.isdigit()
False

引用文件:

Return true if all characters in the string are digits and there is at least one character, false otherwise.

对于unicode字符串或python 3字符串,您需要使用更精确的定义,而使用unicode.isdecimal()/str.isdecimal();并非所有的Unicode数字都可以解释为十进制数字。例如,U+00B2上标2是数字,但不是十进制。


您可以随时使用cx1〔0〕它:

1
2
3
4
try:
   a = int(yourstring)
except ValueError:
   print"can't convert"

请注意,如果您想知道是否可以使用float将字符串转换为浮点数,则此方法会比isdigit更有效。