Python - 類型轉換
你好,未來的 Python 魔術師們!今天,我們將進入 Python 中類型轉換的精彩世界。如果你從未聽過這個術語,也別擔心——在這篇教程結束時,你將能像專家一樣進行類型轉換!
什麼是類型轉換?
在我們深入之前,先來個簡單的類比。想像你有一盒樂高積木,有些是圓形的,有些是方形的,甚至還有些是星形的。類型轉換就像使用魔杖將一個形狀變成另一個形狀。在 Python 中,我們做的是同樣的事,不過轉換的是數據類型而不是樂高形狀!
Python 隱式轉換
Python 非常聰明。有時它會在你不要求的情况下自動將一個數據類型轉換為另一個。這稱為隱式轉換。
讓我們看一個例子:
x = 5 # 這是一個整數
y = 2.0 # 這是一個浮點數
z = x + y
print(z)
print(type(z))
如果你運行這段代碼,你會看到:
7.0
<class 'float'>
哇!Python 在我們將 x
加到 y
上時自動將整數 x
轉換為浮點數。就像 Python 戴上了思考帽並說:“嗯,我不能直接將整數和浮點數相加,所以我先將整數轉換為浮點數!”
Python 顯式轉換
現在,如果我們想成為老闆,告訴 Python 我們想要的精確類型是什麼呢?這就是顯式轉換的用處。這就像我們故意使用魔杖來轉換數據。
Python 提供了幾個內建函數用於此目的。讓我們看看最常見的一些:
Python int() 函數
int()
函數將值轉換為整數。讓我們看看它是如何工作的:
a = int(3.14)
b = int("42")
c = int(True)
print(a, type(a))
print(b, type(b))
print(c, type(c))
輸出:
3 <class 'int'>
42 <class 'int'>
1 <class 'int'>
如你所見,int()
可以將浮點數、字符串(如果它們表示有效的整數)甚至布爾值轉換為整數。這就像變形金剛,但對於數字來說!
Python float() 函數
float()
函數是我們轉換值為浮點數的首選:
x = float(5)
y = float("3.14")
z = float("inf")
print(x, type(x))
print(y, type(y))
print(z, type(z))
輸出:
5.0 <class 'float'>
3.14 <class 'float'>
inf <class 'float'>
看那!我們將整數、字符串甚至無窮大的概念轉換成了浮點數。這就像將固體樂高積木變成了水——它們現在可以流動並有小數點!
Python str() 函數
最後但同樣重要的是 str()
函數。這個函數就像故事 teller——它可以把 almost 任何東西變成字符串:
a = str(42)
b = str(3.14)
c = str(True)
d = str([1, 2, 3])
print(a, type(a))
print(b, type(b))
print(c, type(c))
print(d, type(d))
輸出:
42 <class 'str'>
3.14 <class 'str'>
True <class 'str'>
[1, 2, 3] <class 'str'>
驚人!我們將數字、布爾值甚至列表變成了字符串。就像 str()
函數是位大師畫家,繪製我們給它的任何東西的畫像!
序列類型的轉換
現在,讓我們談談在不同序列類型之間的轉換。Python 有幾個內建的序列類型,如列表、元組和集合。我們可以使用它們各自的函數在這些類型之間進行轉換:
# 將列表轉換為元組
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple, type(my_tuple))
# 將元組轉換為集合
my_set = set(my_tuple)
print(my_set, type(my_set))
# 將集合再次轉換回列表
back_to_list = list(my_set)
print(back_to_list, type(back_to_list))
輸出:
(1, 2, 3, 4, 5) <class 'tuple'>
{1, 2, 3, 4, 5} <class 'set'>
[1, 2, 3, 4, 5] <class 'list'>
這就像我們在數據之間玩音樂椅遊戲,把它從一個類型移到另一個類型!
數據類型轉換函數
讓我們把我們學過的所有類型轉換函數總結在一個方便的表格中:
函數 | 描述 | 示例 |
---|---|---|
int() |
轉換為整數 | int("42") → 42 |
float() |
轉換為浮點數 | float("3.14") → 3.14 |
str() |
轉換為字符串 | str(42) → "42" |
bool() |
轉換為布爾值 | bool(1) → True |
list() |
轉換為列表 | list((1, 2, 3)) → [1, 2, 3] |
tuple() |
轉換為元組 | tuple([1, 2, 3]) → (1, 2, 3) |
set() |
轉換為集合 | set([1, 2, 2, 3]) → {1, 2, 3} |
記住,這些函數就像你在 Python 中的瑞士軍刀——它們非常多功能,可以幫助你從許多棘手的情況中脫身!
就是這樣,各位!我們穿越了 Python 類型轉換的領域,從隱式轉換到顯式轉換。我們看到了 Python 如何自動為我們更改類型,以及如何我們可以控制並自行更改類型。
記住,類型轉換是你 Python 工具箱中的一個強大工具。它允許你塑造數據以適應你的需求,就像雕塑家將粘土塑造為美麗的雕塑一樣。經過練習,你將會在這裡花費很少的時間成為一個類型轉換的專家!
所以,前進吧,年輕的 Pythonistias,並且轉換吧!並永遠記住——在 Python 的世界裡,每個類型都有其位置,但有了轉換的力量,沒有類型是 set in stone. Happy coding!
Credits: Image by storyset