📜  检查是否可以转换为浮点 python (1)

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

检查是否可以转换为浮点数

在 Python 中,有时我们需要将一个字符串转换为浮点数,但是如果字符串无法转换为浮点数,就会出现异常。因此我们需要检查一个字符串是否可以转换为浮点数。

以下是一些方法:

使用 try-except 语句

使用 try-except 语句可以轻松捕获异常,代码如下:

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

如果 float(value) 抛出一个 ValueError 异常,说明字符串无法转换为浮点数,这时就会返回 False

使用正则表达式

我们可以使用正则表达式检查一个字符串是否符合浮点数的规则,代码如下:

import re

def is_float(value):
    pattern = r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'
    return bool(re.match(pattern, value))

这里使用了 re.match() 函数来检查一个字符串是否符合正则表达式的规则,如果符合返回 True,否则返回 False

测试样例

下面是一些测试样例,可以用来测试上面的函数是否正确:

assert is_float('3.14')
assert is_float('-3.14')
assert is_float('0.01')
assert is_float('1.23e4')
assert is_float('1.23E-4')
assert not is_float('3')
assert not is_float('3.')
assert not is_float('.3')
assert not is_float('1.2.3')
assert not is_float('1.23E4.5')

这些测试样例覆盖了各种情况,如果函数能够通过这些测试,则说明函数是正确的。

总结

在 Python 中检查一个字符串是否可以转换为浮点数有很多种方法,上面介绍了两种常用的方法:使用 try-except 语句和正则表达式。无论使用哪种方法,我们都需要写出测试样例来验证函数的正确性。