在 Python 中將字串轉換為小數

Vaibhhav Khetarpal 2023年10月10日
  1. 在 Python 中使用 float() 函式將字串轉換為小數
  2. 使用異常處理將包含逗號的字串轉換為 Python 中的字串
  3. 在 Python 中使用字串格式和 float() 函式將字串轉換為十進位制
  4. 在 Python 中使用列表推導將字串列表轉換為浮點數
  5. 在 Python 中使用 numpy.float() 函式將字串轉換成小數
  6. 在 Python 中使用 NumPy 庫中的 astype() 方法將字串轉換為小數
  7. 在 Python 中使用 decimal 模組將字串轉換為小數
在 Python 中將字串轉換為小數

Python 中的字串可以採用數字值。與其他流行的程式語言類似,Python 支援整數和浮點(或十進位制)數,併為它們分配了單獨的資料型別。有時,需要將字串中的數值轉換為整數或浮點數。

本教程將介紹如何在 Python 中將字串轉換為小數。

在 Python 中使用 float() 函式將字串轉換為小數

Python 提供了一個名為 float() 的內建函式,用於將字串或整數轉換為浮點值。

在這裡,我們將輸入一個字串並對給定的字串執行 float() 函式。

以下程式碼使用 float() 函式在 Python 中將字串轉換為小數。

a = "5.54"
x = float(a)
print(x)

上面的程式碼提供了以下輸出:

5.54

使用異常處理將包含逗號的字串轉換為 Python 中的字串

當逗號分隔字串中的數字並且直接在字串上呼叫 float() 函式時,它會給出 ValueError

下面的示例程式碼將幫助你更好地理解它。

a = "1,5.54"
x = float(a)
print(x)

上面的程式碼提供了以下輸出:

Traceback (most recent call last):
  File "<string>", line 2, in <module>
ValueError: could not convert string to float: '1,5.54'

我們可以快速繞過原始程式碼,並在此程式碼中使用異常處理來避免這種情況。

try...except 語句用於 Python 中的異常處理。try...except 語句分為三個塊;所有三個塊都有不同的目的。

  • try 塊包含要測試任何錯誤的程式碼簇。
  • except 塊用於新增異常和處理程式碼錯誤。
  • finally 塊包含需要執行的語句,並被 tryexcept 塊忽略。

下面的程式碼利用上面給出的原始程式碼的異常處理在 Python 中將字串轉換為小數。

a = "1,5.54"
try:
    x = float(a)
except ValueError:
    print("Invalid Float number to be converted. ")

上面的程式碼提供了以下輸出:

Invalid Float number to be converted.

在 Python 中使用字串格式和 float() 函式將字串轉換為十進位制

在給定的字串中,如果我們想指定我們想要在浮點變數中包含的小數點數,那麼我們可以使用字串格式化以及內建的 float() 函式。

以下程式碼使用字串格式在 Python 中將字串轉換為十進位制。

a = "5.54231"
x = float(a)
x = "{:.2f}".format(x)
print(x)

上面的程式碼提供了以下輸出:

5.54

在 Python 中使用列表推導將字串列表轉換為浮點數

列表推導式是一種相對較短且非常優雅的方式,用於建立基於現有列表的給定值形成的列表。

我們可以使用列表推導並使用列表推導中的 float() 方法將列表中的所有值轉換為浮點值。

以下程式碼使用列表推導將字串列表轉換為 Python 中的浮點數。

lst = ["1.22", "5.54", "6.858"]
x = [float(i) for i in lst]
print(x)

上面的程式碼提供了以下輸出。

[1.22, 5.54, 6.858]

在 Python 中使用 numpy.float() 函式將字串轉換成小數

術語 NumPy 是 Numerical Python 的首字母縮寫詞。這個庫使得在 Python 中使用陣列成為可能。它還提供了有助於操作這些陣列的函式。

numpy.float() 函式的工作方式類似於 Python 中內建的 float() 函式,唯一的區別是 numpy.float() 函式用於處理陣列。它總是生成一個浮點值陣列。

以下程式碼使用 numpy.float() 函式在 Python 中將字串轉換為小數。

import numpy as np

lst = ["1.22", "5.54", "6.858"]
print(list(np.float_(lst)))

上面的程式碼提供了以下輸出:

[1.22, 5.54, 6.858]

在 Python 中使用 NumPy 庫中的 astype() 方法將字串轉換為小數

NumPy 庫包含一個內建的 astype() 方法,該方法有助於轉換給定 NumPy 陣列的資料型別。

以下程式碼使用 NumPy 庫中的 astype() 方法在 Python 中將字串轉換為小數。

import numpy as np

a = np.array(["1.22", "5.54", "6.858"])
x = a.astype(float)
print(x)

上面的程式碼提供了以下輸出:

[1.22  5.54  6.858]

在 Python 中使用 decimal 模組將字串轉換為小數

decimal 模組提供的函式執行速度比常用浮點函式更快。

decimal.Decimal() 函式是一個建構函式,將輸入作為數值並執行將其轉換為十進位制型別的過程,非常適合儲存和表示數值,同時嚴格保持精度號碼。

以下程式碼使用 decimal 模組在 Python 中將字串轉換為小數。

from decimal import Decimal

a = "5.54262"
x = Decimal(a)
print(x)

上面的程式碼提供了以下輸出:

5.54262
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python String

相關文章 - Python Float