📜  检查字符串是否为浮点 python (1)

📅  最后修改于: 2023-12-03 14:55:45.705000             🧑  作者: Mango

检查字符串是否为浮点 Python

在 Python 中,我们可以通过多种方式检查一个字符串是否为浮点数。下面我们就来介绍一些方法。

方法一:使用浮点数正则表达式

我们可以使用 Python 自带的 re(正则表达式)模块,通过编写浮点数的正则表达式来检查一个字符串是否为浮点数。

import re

def is_float(number):
    regex = "^\d+\.\d+$"
    return bool(re.match(regex, number))

if is_float("3.14"):
    print("This is a float.")
else:
    print("This is not a float.")

输出:This is a float.

这个方法的好处在于,我们可以自己定义想要匹配的浮点数格式。

方法二:使用 Python 内置函数

除了使用正则表达式外,我们还可以使用 Python 内置函数 float() 来尝试将一个字符串转换成浮点数。如果成功转换,则说明该字符串是一个浮点数。

def is_float(number):
    try:
        float(number)
        return True
    except ValueError:
        return False

if is_float("3.14"):
    print("This is a float.")
else:
    print("This is not a float.")

输出:This is a float.

需要注意的是,由于 float() 函数的转换规则比较严格,因此该方法可能会比正则表达式方法更容易出错。

方法三:使用第三方库

除了以上两种方法外,我们还可以使用 Python 中的第三方库来检查一个字符串是否为浮点数,例如 numpy 库提供了 numpy.isclose() 方法来比较两个浮点数是否相似。

import numpy as np

def is_float(number):
    try:
        return np.isclose(float(number), float(number))
    except ValueError:
        return False

if is_float("3.14"):
    print("This is a float.")
else:
    print("This is not a float.")

输出:This is a float.

需要注意的是,使用第三方库的方法需要先安装相应的库,不过有时候会比起使用内置函数或正则表达式更加简便。