博客 / 詳情

返回

Python中的數據類型轉換

Python 類型轉換

Python 數據類型轉換可以分為:

  1. 隱式類型轉換 - 自動完成
  2. 顯式類型轉換 - 需要使用類型函數來轉換

隱式類型轉換

在隱式類型轉換中,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 "/runoob-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'>

最近整理了一套編程學習資料分享給大家,全是乾貨內容,包含教程視頻、電子書、源碼筆記、學習路線圖、實戰項目、面試題等等,關注公眾號【Python編程學習圈】就能免費獲取,回覆關鍵詞【學習資料】即可,抓緊時間吧!

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.