1. 程式人生 > 實用技巧 >python強制型別轉換和自動型別轉換

python強制型別轉換和自動型別轉換

一. 強制型別轉換: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)