python強制型別轉換和自動型別轉換
阿新 • • 發佈:2020-11-20
一. 強制型別轉換:Number (int float complex bool )
----------------------------------------------
var1 = 3
var2 = 5.67
var3 = "123"
var4 = 5+6j
var5 = "abc"
var6 = True
var7 = False
------------------------------------------------
1.1int的強制轉換
可以轉換為整型.浮點型.布林型.純數字字串
res = int(var2) res = int(var3) res = int(var6) #True => 1 res = int(var7) # False => 0 # res = int(var4) error # res = int(var5) error print(res , type(res))
1.2float的強制轉換
可以轉換為整型.浮點型.布林型.純數字字串
res = float(var1) res = float(var3) res = float("123.456") res = float(var6) # True => 1.0 res = float(var7) # False => 0.0 print(res , type(res))
1.3 complex的強制轉換
可以轉換為整型 浮點型 布林型 純數字字串 複數
res = complex(var1) res = complex(var2) res = complex(var3) # res = complex(var5) error res = complex(var6) # True => 1+0j res = complex(var7) # False => 0j print(res , type(res)) # 3+0j
1.3 bool的強制轉換 ****************
""" 沒有資料型別的限制,可以轉換一切資料型別; bool => True 或者 False 布林型為假的十種情況: Number : 0 , 0.0 , 0j , False 容器 : '' , [] , () , set() , {}關鍵字 : None (代表空的,什麼也沒有,一般用來對變數做初始化操作的) """ res = bool( None ) print(res , type(res)) # 初始化變數 , 使用None a = None b = None
二.自動型別轉換 Number
精度從高到低
bool-->int-->float-->complex
自動型別轉換原則: 把低精度的資料向高精度進行轉換
# bool + int res = True + 100 # 1 + 100 => 101 print(res , type(res)) # bool + float res = True + 4.5 # 1.0 + 4.5 => 5.5 print(res , type(res)) # bool + complex res = True + 6+3j # 1+0j + 6+3j => 7 + 3j print(res , type(res)) # int + float res = 120 + 3.14 # 120.0 + 3.14 print(res , type(res)) # int + complex res =100 + 4-3j # 100 + 0j +4-3j print(res , type(res)) # float + complex res = 5.67 + 3+3j # 5.67 + 0j + 3 + 3j print(res , type(res)) # 精度損耗 (寫程式時,不要用小數做比較的條件,會導致結果不準確,一般系統會把小數位擷取15~18位而產生資料的誤差) res = 0.1+0.2 == 0.3 res = 4.1+4.2 == 8.3 print(res)