【问题标题】: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 异常。如果您搜索更多内容,很可能之前已经问过这个问题。

标签: python numeric


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      相关资源
      最近更新 更多