Python-判断字符串为浮点型

方法一:强制转换

Python提供了float()函数来将字符串转换为浮点型。我们可以使用try-except语句来判断字符串是否可以成功转换为浮点型。如果转换成功,说明字符串为浮点型;如果转换失败,则说明字符串不是浮点型。

使用try-except语句进行转换的示例代码:

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


if __name__ == '__main__':
    print(is_float("123"))  # 输出:True
    print(is_float("+123"))  # 输出:True
    print(is_float("123.45"))  # 输出:True
    print(is_float("-123.45"))  # 输出:True
    print(is_float("1e-2"))  # 输出:True
    print(is_float("-1e-2"))  # 输出:True
    print(is_float("abc"))  # 输出:False
    print(is_float("."))  # 输出:False

在上述代码中,我们定义了一个is_float函数,该函数接受一个字符串作为输入,尝试将其转换为浮点型。如果转换成功,即不抛出异常,则返回True;如果转换失败,即抛出ValueError异常,则返回False。

方法二:正则表达式匹配

正则表达式是一种用于描述字符串模式的工具。我们可以使用正则表达式来判断一个字符串是否符合浮点型的模式。如果字符串符合浮点型的模式,就可以判断其为浮点型。

使用正则表达式进行匹配的示例代码:

import re


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


if __name__ == '__main__':
    print(is_float("123"))  # 输出:True
    print(is_float("+123"))  # 输出:True
    print(is_float("123.45"))  # 输出:True
    print(is_float("-123.45"))  # 输出:True
    print(is_float("1e-2"))  # 输出:True
    print(is_float("-1e-2"))  # 输出:True
    print(is_float("abc"))  # 输出:False
    print(is_float("."))  # 输出:False

在上述代码中,我们使用re.match()函数来进行正则表达式的匹配。我们定义了一个匹配浮点型模式的正则表达式pattern,其中:

  • ^表示匹配字符串的开始
  • [-+]?表示可选的正负号
  • [0-9]*表示零个或多个数字
  • \.?表示可选的小数点
  • [0-9]+表示至少一个数字
  • ([eE][-+]?[0-9]+)?表示可选的指数部分
  • $表示匹配字符串的结束

我们使用bool()函数将re.match()返回的匹配对象转换为布尔型,如果匹配成功,则返回True;如果匹配失败,则返回False。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值