一、介紹
在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和自定義函數。讀者可以根據實際需求選擇其中的一種方法進行使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/219544.html