簡介
Python 是一種常用於系統整合目的的程式語言。這種語言使用了一種稱為 「資料型態」 的東西。這些資料型態有助於對給定的資料進行分類或定義。這意味著特定的資料型態適用於您可以對其應用的特定值和運算。每種資料型態的編寫和編輯方式都不同。這是因為每種資料型態都有不同的性質。例如,您可能會處理字串或整數。
本指南的目標是幫助您熟悉 Python 中的各種資料型態。不僅如此,我們還將深入討論如何將這些資料型態互相轉換。在本教學結束時,您應該會了解數字、字串、元組和列表等資料型態,以及如何轉換它們。
數字轉換
當我們在 Python 中談到數字時,我們可能是指以下兩種選擇之一。我們處理的可能是 整數 或 浮點數。有時候您可能需要將其中一種轉換為另一種。您可以輕鬆地將整數轉換為浮點數,以及將浮點數轉換為整數。
-
轉換:整數轉浮點數
首先,我們將開始探索如何將整數轉換為浮點數。實現此目的的方法是使用一個名為 float() 的指令。此函數會將任何給定的整數轉換為帶有小數的浮點數。您只需將整數放入括號中即可。例如,假設您想將整數 57 轉換為浮點數資料型態。以下是您的轉換方式:
|
1 |
float(57) |
執行此指令的結果,整數 57 將會轉換為浮點數 57.0.
另一種方法是使用變數。您可以透過變數來表示您的整數,然後使用上述指令列印出浮點數。假設您宣告變數 f 等於 57。在這種情況下,轉換過程如下:
|
1 2 3 |
f = 57 print(float(f)) |
|
1 2 3 |
輸出 57.0 |
-
轉換:浮點數轉整數
您也可以將浮點數轉換為整數。與之前的指令類似,可以使用 int() 函數來進行此轉換。就像上次一樣,您只需在函數後面的括號中加入浮點數即可。
在我們的範例中,我們將把浮點數 390 轉換為整數。要進行轉換,我們將執行以下指令:
|
1 |
int(390.8) |
執行此函數的結果,390 將會轉換為其浮點數形式:390.8.
同樣地,您可以藉助變數來進行轉換。不僅如此,您還可以同時進行多個轉換。假設 b 等於 125.0 且 c 等於 390.8。以下是您列印這些浮點數值的方式:
|
1 2 3 4 5 |
b = 125.0 c = 390.8 print(int(b)) print(int(c)) |
|
1 2 3 4 |
輸出 125 390 |
如您所見,整數已成功轉換為浮點數。
在浮點數轉整數的轉換過程中,需要記住的一件重要事情是,該函數不會對數值進行四捨五入。這意味著浮點數的小數部分會直接被移除。該函數不會將像 390.8 這樣的數值四捨五入到 390——它只會直接移除 0.8 單位以得到一個整數。
-
轉換:透過除法
您也可以透過除法將整數轉換為浮點數。整數相除可能會得到一個身為浮點數的商。例如,當 5 除以 2 時,您得到的答案將是 2.5,這是一個浮點數。請看:
|
1 2 |
a = 5 / 2 print(a) |
|
1 2 3 |
輸出 2.5 |
這是 Python 3 的一項特殊功能。在 Python 2 中,執行此類除法只會得到整數答案,如下所示: 5 / 2 = 2.
與字串進行轉換
在我們開始討論如何與 字串,您需要了解字串到底是什麼。如果您還不知道,字串就是字元的序列。這可以是字母、數字、符號或任何其他字元的字串。您可能知道字串與電腦資料有關。這是因為電腦經常使用這種資料類型來執行其操作。
如果您正在處理使用者產生的資料,那麼您將需要經常進行這些轉換。這就是為什麼了解如何將數字轉換為字串以及將字串轉換為數字非常實用的原因。
-
轉換:數字轉換為字串
您可以使用 str() 函式將數字轉換為字串。與之前一樣,您要將想要轉換的值放在括號內。這個值可以是一個數字或一個變數。首先,讓我們觀察您會如何將一個整數(例如 12)轉換為字串值:
|
1 |
str(12) |
|
1 2 3 |
輸出 '12' |
如您所見,輸出顯示了一個字串值。字串值是由引號表示的。
另一方面,您也可以在函式中放入變數而不是整數。這就是該函式真正派上用場的地方。例如,假設您想要追蹤並回報使用者在特定時間範圍內編寫了多少行程式碼。為了向使用者顯示此資訊,您需要同時印出字串和整數值,如下所示:
|
1 2 3 4 |
user = "Sammy" lines = 50 print("恭喜," + user + "!您剛剛寫了 " + lines + " 行程式碼。") |
很遺憾,如果您嘗試執行上述程式碼,您將會收到如下錯誤:

這意味著您需要將變數 lines 轉換為字串值才能執行該程式碼。
|
1 2 3 4 |
user = "Sammy" lines = 50 print("恭喜," + user + "!您剛剛寫了 " + str(lines) + " 行程式碼。") |
現在您已經放入了轉換函式,您將能夠成功執行該指令。您將會看到類似以下的輸出:
|
1 2 3 |
輸出 恭喜, Sammy! 您 剛剛 寫了 50 行 的 程式碼. |
同樣地,如果您希望將浮點數(而不是整數)新增到字串中,您也必須執行相同的操作。與之前一樣,您可以直接新增該值,也可以使用變數。例如:
|
1 2 3 |
print(str(421.034)) f = 5524.53 print(str(f)) |
|
1 2 3 4 |
輸出 421.034 5524.53 |
如果您想確保該值正確,可以將其與字串串接,如下所示:
|
1 2 |
f = 5524.53 print("Sammy 有 " + str(f) + " 分。") |
|
1 2 3 |
輸出 Sammy 有 5524.53 分. |
由於您沒有收到錯誤,這意味著轉換成功。
-
轉換:字串轉換為數字
同樣地,您也可以將字串轉換為數字。如果您的字串沒有任何小數點,那麼您最好將其轉換為整數。您可以使用 int() 函式將其轉換為整數。
我們將繼續使用先前整數轉換的範例。因此,假設有一位名為 Sammy 的使用者想要每天追蹤他們的程式碼編寫進度。作為一名程式設計師,您希望以富有創意的方式向使用者呈現此資訊。但由於這些值是以字串形式儲存的,您無法對它們套用一些基本的運算元,例如 –(減法)。您可以在以下內容中觀察到這一點:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = lines_today - lines_yesterday print(lines_more) |

如您所見,該運算元不適用於字串值。相反地,您會收到一個錯誤。為了能夠處理這些值,您需要使用 int() 函式將字串轉換為整數:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = int(lines_today) - int(lines_yesterday) print(lines_more) |
|
1 2 3 |
輸出 58 |
這裡,lines_more 是一個變數。這個變數是一個整數,且等於計算結果的值,在我們的範例中是 58。
另一方面,您可以使用 float() 函數(如果存在小數的話)將字串轉換為浮點數。在這個範例中,我們將使用使用者 Sammy 獲得的分數,而不是他們寫的行數。分數是以小數點表示的:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = total_points + new_points print(new_total_points) |
|
1 2 3 |
輸出 5524.5345.30 |
雖然輸出沒有顯示錯誤,但它仍然是不正確的。在這種情況下,運算子 + 或加法起作用了。但它並沒有將這兩個數字相加,而只是簡單地將這兩個字串值並排放在一起。
這就是為什麼您需要先使用 float() 函數將這些字串轉換為浮點數值:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = float(total_points) + float(new_points) print(new_total_points) |
|
1 2 3 |
輸出 5569.83 |
如您在上方所見,這兩個值被相加在一起。請記住:如果您嘗試將帶有小數的字串值轉換為整數,您將會得到如下的錯誤:
|
1 2 |
f = "54.23" print(int(f)) |

因此,您需要先將字串資料類型轉換為數字。然後,您就可以輕鬆地對數值進行其他運算和轉換。
轉換為元組和串列
串列和 tuples 是您可以在 Python 3 中使用的其他幾種資料類型。這兩者都由一連串的元素組成。兩者之間的區別在於,串列是可變的(mutable),而元組是不可變的(immutable)。此外,串列的元素放在中括號內 [ ],而元組的元素則放在小括號內 ( ).
-
轉換:將串列轉換為元組
首先,讓我們來探索如何將串列轉換為元組。如果您需要不可變的資料類型,您可能需要進行此轉換。為此,您需要使用函數 tuple():
|
1 |
print(tuple(['pull request', 'open source', 'repository', 'branch'])) |
|
1 2 3 |
輸出 ('pull request', 'open source', 'repository', 'branch') |
如您所見,串列中的項目現在位於元組中。這可以從包圍元素的括號中看出。
您也可以將 tuple() 函數與等於項目串列的變數一起使用:
|
1 2 3 |
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'] print(tuple(sea_creatures)) |
|
1 2 3 |
輸出 ('shark', 'cuttlefish', 'squid', 'mantis shrimp') |
方便的是,您可以將任何資料類型轉換為元組。例如,以下是您將字串轉換為元組的方法:
|
1 |
print(tuple('Sammy')) |
|
1 2 3 |
輸出 ('S', 'a', 'm', 'm', 'y') |
字串可以轉換為元組,因為它們是可迭代的(iterable)。可以理解的是,不可迭代的資料類型無法轉換為元組。假設您希望將一些整數或浮點數轉換為元組。如果您執行 tuple() 函數,您將會收到如下的錯誤:
|
1 |
print(tuple(5000)) |
|
1 2 3 |
輸出 TypeError: 'int' 物件 是 不是 可迭代的 |
型態錯誤顯示該整數是不可迭代的。這就是無法進行轉換的原因。一個複雜的方法是先將整數轉換為字串,然後再轉換為元組。您可以使用以下函數來做到這一點:tuple(str(5000))。但我們建議避免這種複雜的操作。
-
轉換:元組到列表
相反地,如果您需要可變資料,您可能必須將元組轉換為列表。為此,您將使用 list() 函數,如下所示:
|
1 |
print(list(('blue coral', 'staghorn coral', 'pillar coral'))) |
|
1 2 3 |
輸出 ['blue coral', 'staghorn coral', 'pillar coral'] |
方括號的存在表示產生的輸出是一個元組。當編寫程式碼以使用 list(),您必須確保為 list() 方法以及 print() 方法加上括號。然而,這會使程式碼變得有點難以閱讀。為了降低複雜度,您可以使用變數來移除一對括號:
|
1 2 3 |
coral = ('blue coral', 'staghorn coral', 'pillar coral') list(coral) |
與元組類似,您也可以直接將字串轉換為列表:
|
1 |
print(list('shark')) |
|
1 2 3 |
輸出 ['s', 'h', 'a', 'r', 'k'] |
結論
如果您正在尋找在 Python 3 中轉換資料型態的方法,本指南將會對您有所幫助。我們詳細討論了不同的資料型態,以及如何使用 Python 內建函數將它們相互轉換。了解這些轉換將有助於讓您的程式設計體驗更加輕鬆和深入。
要進一步探索您可以使用 Python 做些什麼,請參考我們的其他指南:
- 請查看 如何在 Ubuntu 16.04 上安裝 Python 3 並設定本地程式設計環境.
- 跟著學習 如何使用 Python 擷取 Twitter 資料.
- 學習 如何使用 Python 獲取 NASDAQ 每分鐘數據.
- 您也可以查看 如何利用 CloudSigma Python 腳本在我們的平台上自動將硬碟快照轉換為完整硬碟.
祝您運算愉快!
留言
目前尚無留言。成為第一個留言的人吧。