一、介绍
在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和自定义函数。读者可以根据实际需求选择其中的一种方法进行使用。