您現(xiàn)在的位置是:首頁 >python教程 >python教程五 數(shù)據(jù)類型轉(zhuǎn)換網(wǎng)站首頁python教程
python教程五 數(shù)據(jù)類型轉(zhuǎn)換
數(shù)據(jù)類型轉(zhuǎn)換
有時候,我們需要對數(shù)據(jù)內(nèi)置的類型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類型的轉(zhuǎn)換,一般情況下你只需要將數(shù)據(jù)類型作為函數(shù)名即可。
Python 數(shù)據(jù)類型轉(zhuǎn)換可以分為兩種:
隱式類型轉(zhuǎn)換 - 自動完成
顯式類型轉(zhuǎn)換 - 需要使用類型函數(shù)來轉(zhuǎn)換
隱式類型轉(zhuǎn)換
在隱式類型轉(zhuǎn)換中,Python 會自動將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型,不需要我們?nèi)ジ深A(yù)。
以下實例中,我們對兩種不同類型的數(shù)據(jù)進(jìn)行運算,較低數(shù)據(jù)類型(整數(shù))就會轉(zhuǎn)換為較高數(shù)據(jù)類型(浮點數(shù))以避免數(shù)據(jù)丟失。
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))
以上實例輸出結(jié)果為:
num_int 數(shù)據(jù)類型為: <class 'int'> num_flo 數(shù)據(jù)類型為: <class 'float'> num_new: 值為: 124.23 num_new 數(shù)據(jù)類型為: <class 'float'>
代碼解析:
實例中我們對兩個不同數(shù)據(jù)類型的變量 num_int 和 num_flo 進(jìn)行相加運算,并存儲在變量 num_new 中。
然后查看三個變量的數(shù)據(jù)類型。
在輸出結(jié)果中,我們看到 num_int 是 整型(integer) , num_flo 是 浮點型(float)。
同樣,新的變量 num_new 是 浮點型(float),這是因為 Python 會將較小的數(shù)據(jù)類型轉(zhuǎn)換為較大的數(shù)據(jù)類型,以避免數(shù)據(jù)丟失。
我們再看一個實例,整型數(shù)據(jù)與字符串類型的數(shù)據(jù)進(jìn)行相加:
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)
以上實例輸出結(jié)果為:
num_int 數(shù)據(jù)類型為: <class 'int'> num_str 數(shù)據(jù)類型為: <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'
從輸出中可以看出,整型和字符串類型運算結(jié)果會報錯,輸出 TypeError。 Python 在這種情況下無法使用隱式轉(zhuǎn)換。
但是,Python 為這些類型的情況提供了一種解決方案,稱為顯式轉(zhuǎn)換。
顯式類型轉(zhuǎn)換
在顯式類型轉(zhuǎn)換中,用戶將對象的數(shù)據(jù)類型轉(zhuǎn)換為所需的數(shù)據(jù)類型。 我們使用 int()、float()、str() 等預(yù)定義函數(shù)來執(zhí)行顯式類型轉(zhuǎn)換。
int() 強制轉(zhuǎn)換為整型:
x = int(1) # x 輸出結(jié)果為 1
y = int(2.8) # y 輸出結(jié)果為 2
z = int("3") # z 輸出結(jié)果為 3
float() 強制轉(zhuǎn)換為浮點型:
x = float(1) # x 輸出結(jié)果為 1.0
y = float(2.8) # y 輸出結(jié)果為 2.8
z = float("3") # z 輸出結(jié)果為 3.0
w = float("4.2") # w 輸出結(jié)果為 4.2
str() 強制轉(zhuǎn)換為字符串類型:
x = str("s1") # x 輸出結(jié)果為 's1'
y = str(2) # y 輸出結(jié)果為 '2'
z = str(3.0) # z 輸出結(jié)果為 '3.0'
整型和字符串類型進(jìn)行運算,就可以用強制類型轉(zhuǎn)換來完成:
num_int = 123
num_str = "456"
print("num_int 數(shù)據(jù)類型為:",type(num_int))
print("類型轉(zhuǎn)換前,num_str 數(shù)據(jù)類型為:",type(num_str))
num_str = int(num_str) # 強制轉(zhuǎn)換為整型
print("類型轉(zhuǎn)換后,num_str 數(shù)據(jù)類型為:",type(num_str))
num_sum = num_int + num_str
print("num_int 與 num_str 相加結(jié)果為:",num_sum)
print("sum 數(shù)據(jù)類型為:",type(num_sum))
以上實例輸出結(jié)果為:
num_int 數(shù)據(jù)類型為: <class 'int'> 類型轉(zhuǎn)換前,num_str 數(shù)據(jù)類型為: <class 'str'> 類型轉(zhuǎn)換后,num_str 數(shù)據(jù)類型為: <class 'int'> num_int 與 num_str 相加結(jié)果為: 579 sum 數(shù)據(jù)類型為: <class 'int'>



針對“附近的人”這一位置服務(wù)領(lǐng)域的應(yīng)用場景,常見的可使用PG、MySQL和MongoDB等多種DB的空間索引進(jìn)行實...
最近項目有用到七牛云存儲,需要對上傳的照片進(jìn)行鑒黃并上傳報存
string是最簡單的類型,一個Key對應(yīng)一個value,string類型是二進(jìn)制安全的,redis的string可以包含任何數(shù)據(jù)...