您現在的位置是:首頁 >python教程 >python教程五 數據類型轉換網站首頁python教程
python教程五 數據類型轉換
數據類型轉換
有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,一般情況下你只需要將數據類型作為函數名即可。
Python 數據類型轉換可以分為兩種:
隱式類型轉換 - 自動完成
顯式類型轉換 - 需要使用類型函數來轉換
隱式類型轉換
在隱式類型轉換中,Python 會自動將一種數據類型轉換為另一種數據類型,不需要我們去干預。
以下實例中,我們對兩種不同類型的數據進行運算,較低數據類型(整數)就會轉換為較高數據類型(浮點數)以避免數據丟失。
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))
print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))
以上實例輸出結果為:
num_int 數據類型為: <class 'int'> num_flo 數據類型為: <class 'float'> num_new: 值為: 124.23 num_new 數據類型為: <class 'float'>
代碼解析:
實例中我們對兩個不同數據類型的變量 num_int 和 num_flo 進行相加運算,并存儲在變量 num_new 中。
然后查看三個變量的數據類型。
在輸出結果中,我們看到 num_int 是 整型(integer) , num_flo 是 浮點型(float)。
同樣,新的變量 num_new 是 浮點型(float),這是因為 Python 會將較小的數據類型轉換為較大的數據類型,以避免數據丟失。
我們再看一個實例,整型數據與字符串類型的數據進行相加:
num_int = 123
num_str = "456"
print("Data type of num_int:",type(num_int))
print("Data type of num_str:",type(num_str))
print(num_int+num_str)
以上實例輸出結果為:
num_int 數據類型為: <class 'int'> num_str 數據類型為: <class 'str'> Traceback (most recent call last): File "/dyf-test/test.py", line 7, in < module > print(num_int+num_str) TypeError: unsupported operand type(s) for +: 'int' and 'str'
從輸出中可以看出,整型和字符串類型運算結果會報錯,輸出 TypeError。 Python 在這種情況下無法使用隱式轉換。
但是,Python 為這些類型的情況提供了一種解決方案,稱為顯式轉換。
顯式類型轉換
在顯式類型轉換中,用戶將對象的數據類型轉換為所需的數據類型。 我們使用 int()、float()、str() 等預定義函數來執行顯式類型轉換。
int() 強制轉換為整型:
x = int(1) # x 輸出結果為 1
y = int(2.8) # y 輸出結果為 2
z = int("3") # z 輸出結果為 3
float() 強制轉換為浮點型:
x = float(1) # x 輸出結果為 1.0
y = float(2.8) # y 輸出結果為 2.8
z = float("3") # z 輸出結果為 3.0
w = float("4.2") # w 輸出結果為 4.2
str() 強制轉換為字符串類型:
x = str("s1") # x 輸出結果為 's1'
y = str(2) # y 輸出結果為 '2'
z = str(3.0) # z 輸出結果為 '3.0'
整型和字符串類型進行運算,就可以用強制類型轉換來完成:
num_int = 123
num_str = "456"
print("num_int 數據類型為:",type(num_int))
print("類型轉換前,num_str 數據類型為:",type(num_str))
num_str = int(num_str) # 強制轉換為整型
print("類型轉換后,num_str 數據類型為:",type(num_str))
num_sum = num_int + num_str
print("num_int 與 num_str 相加結果為:",num_sum)
print("sum 數據類型為:",type(num_sum))
以上實例輸出結果為:
num_int 數據類型為: <class 'int'> 類型轉換前,num_str 數據類型為: <class 'str'> 類型轉換后,num_str 數據類型為: <class 'int'> num_int 與 num_str 相加結果為: 579 sum 數據類型為: <class 'int'>