在Python中,如何检查字符串中是否包含数值?
可能重复:在Python中,如何检查字符串中是否包含数值?,python,string,int,converter,Python,String,Int,Converter,可能重复: 例如,我想检查一个字符串,如果它不能转换为整数(使用int()),我如何检测它?您总是可以尝试它: try: a = int(yourstring) except ValueError: print "can't convert" 请注意,如果您想知道是否可以使用float将字符串转换为浮点数,请使用以下命令: 引用文件: 如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则返回false 对于unicode字符串或python3字符串,您需要使用更
例如,我想检查一个字符串,如果它不能转换为整数(使用
int()
),我如何检测它?您总是可以尝试它:
try:
a = int(yourstring)
except ValueError:
print "can't convert"
请注意,如果您想知道是否可以使用float
将字符串转换为浮点数,请使用以下命令:
引用文件:
如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则返回false
对于unicode
字符串或python3字符串,您需要使用更精确的定义,并使用/代替;并非所有Unicode数字都可以解释为十进制数。例如,是一个数字,但不是十进制。Upvote。只是尝试一下就更像是python了..除了:)为了清晰起见,这里已经有了一个解决方案,应该允许使用“-99”吗?那么“+123”呢?或“1729”(带前导和尾随空格的整数)。'0x123'?@MarkDickinson——为什么不允许'-99'
?@mgilson:不知道——我猜不出OP的用例是什么。但这是一个明显的例子,“isdigit”答案并没有很好地解决这个问题。-1代表a=“0x12”
a.isdigit()`>>False我没有投反对票,但是“1234”。isdigit()
将返回False
,尽管int
很乐意忽略前面的空格。@user1655481:这也不是一个数字,这是一个python十六进制文字int('0x12')
抛出ValueError,除非您指定了一个基。@mgilson:这就是函数的要点。如果需要.strip()
等,则需要什么取决于您的用例。
>>> '123'.isdigit()
True
>>> '1a23'.isdigit()
False