您的位置:

Python实现字符串转float

一、介绍

在Python中,我们通常需要对数据进行转换,其中字符串转换成浮点数的操作是比较常见的。本文将阐述如何使用Python实现字符串转float。

二、实现方法

1. 使用内置函数float()


    str_1 = "3.14"
    float_1 = float(str_1)
    print(type(float_1))
    print(float_1)
   
    # 输出结果
    # <class 'float'>
    # 3.14

在上述代码中,我们使用了内置函数float()将字符串"3.14"转换为浮点数类型。通过print语句可以看到,转换后的类型为float。

2. 使用正则表达式re


    import re

    str_2 = "3.14"
    pattern = '^[-+]?[0-9]+\.[0-9]+$'
    result = re.match(pattern, str_2)
    if result:
        print('匹配成功')
        print(float(str_2))
    else:
        print('匹配失败')

    # 输出结果
    # 匹配成功
    # 3.14

正则表达式是一种强大的文本匹配工具,可以根据匹配模式将文本中符合条件的部分提取出来。在上述代码中,我们使用正则表达式匹配字符串是否为浮点数类型,如果是,则使用内置函数float()将其转换为浮点数类型。

3. 自定义函数


    def str_to_float(s):
        if isinstance(s, float):
            return s
        if isinstance(s, int):
            return float(s)
        if not s:
            return 0.0
        if isinstance(s, str):
            s = s.strip()
            if s.isdigit():
                return float(s)
            pat_1 = re.compile('\d+\.\d+')
            pat_2 = re.compile('\d+')
            res_1 = pat_1.findall(s)
            res_2 = pat_2.findall(s)
            if res_1:
                return float(res_1[0])
            elif res_2:
                return float(res_2[0])
            else:
                return 0.0

    str_3 = "3.14"
    float_3 = str_to_float(str_3)
    print(type(float_3))
    print(float_3)

    # 输出结果
    # <class 'float'>
    # 3.14

以上代码将字符串转换为浮点数的代码封装成了自定义函数str_to_float()。该函数首先判断输入参数的类型,如果是浮点数或整数,则返回原数;如果是空字符串,则返回0.0;如果是字符串,则根据匹配的规则将其转换为浮点数。

三、总结

本文介绍了Python实现字符串转float的3种方法,分别是使用内置函数float()、正则表达式re和自定义函数。读者可以根据实际需求选择其中的一种方法进行使用。