如何检查字符串是浮点数还是整数?
Posted
技术标签:
【中文标题】如何检查字符串是浮点数还是整数?【英文标题】:How do I check if a string is a float number or an integer number? 【发布时间】:2022-01-10 14:20:54 【问题描述】:"1.0".isnumeric()
-> 错误
我需要知道该字符串实际上是浮点数还是整数,因为尽管字符串实际上是浮点数,但 .isnumeric()
返回 False
【问题讨论】:
您的选择可能是:(a) 使用合适的正则表达式进行测试,或者 (b) 调用float
并捕获任何 ValueError
异常。如果您搜索更多内容,很可能之前已经问过这个问题。
【参考方案1】:
您可以做的是使用ast.literal_eval
方法将字符串转换为其实际数据类型,然后使用isinstance
方法检查它是否为浮点数。
>>> import ast
>>> string = '1.0'
>>>
>>> num = ast.literal_eval(string)
>>> num
1.0
>>> isinstance(num,float)
True
>>>
同样的方法你可以检查它是否是一个整数。希望这能回答您的问题。
【讨论】:
【参考方案2】:试试这个功能:
def is_numeric(some_string):
try:
float(some_string)
return True
except ValueError:
return False
if __name__ == "__main__":
print(is_numeric("123"))
print(is_numeric("1.0"))
print(is_numeric("1.0asd"))
输出:
True
True
False
【讨论】:
以上是关于如何检查字符串是浮点数还是整数?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查数字是浮点数还是整数? - How do I check that a number is float or integer?