Number類型的強制轉換
int強制將數據轉換成字符串
可轉換類型:int、float、bool、純數字字符串
var = 10
res = int(var)
print(res, type(res))
var = 3.14
res = int(var)
print(res, type(res))
var = True
res = int(var)
print(res, type(res))
var = False
res = int(var)
print(res, type(res))
var = "123456"
res = int(var)
print(res, type(res))
# var = "123abc"
# res = int(var)
# print(res, type(res)) # Error
# var = 3+5j
# res = int(var)
# print(res, type(res)) # Error
float強制將數據轉換成字符串
可轉換類型:int、float、bool、純數字字符串、純小數字符串
var = 10
res = float(var)
print(res, type(res))
var = 3.14
res = float(var)
print(res, type(res))
var = True
res = float(var)
print(res, type(res))
var = False
res = float(var)
print(res, type(res))
var = "123456"
res = float(var)
print(res, type(res))
var = "0.123"
res = float(var)
print(res, type(res))
# var = "123abc"
# res = float(var)
# print(res, type(res)) # Error
# var = 3+5j
# res = float(var)
# print(res, type(res)) # Error
complex強制將數據轉換成字符串
可轉換類型:int、float、bool、complex、純數字字符串、純復數字符串
var = 10
res = complex(var)
print(res, type(res))
var = 3.14
res = complex(var)
print(res, type(res))
var = True
res = complex(var)
print(res, type(res))
var = False
res = complex(var)
print(res, type(res))
var = "123456"
res = complex(var)
print(res, type(res))
var = "5+2j"
res = complex(var)
print(res, type(res))
var = 3+5j
res = complex(var)
print(res, type(res))
# var = "123abc"
# res = complex(var)
# print(res, type(res)) # Error
bool強制將數據轉換成字符串
可轉換強轉一切數據類型,返回值為True或False
var = 3+5j
res = bool(var)
print(res, type(res))
var = "123abc"
res = bool(var)
print(res, type(res))
var = [1, 2, 3,"abc"]
res = bool(var)
print(res, type(res))
var = (1, 2, 3,"abc")
res = bool(var)
print(res, type(res))
var = {1, 2, 3,"abc"}
res = bool(var)
print(res, type(res))
var = {"a":1, "b":2}
res = bool(var)
print(res, type(res))
bool值為False的十種情況
0 # 整型0
0.0 # 浮點型0.0
False # 布爾型False
0j # 復數型0j或0+0j
"" # 空字符串
[] # 空列表
() # 空元組
set() # 空集合
{} # 空字典
None # 空
擴展
強轉空數據時,默認轉換成當前數據類型的一個值
res = int()
# 結果:0 <class 'int'>
print(res, type(res))
Number自動類型轉換
默認低精度向高精度進行轉換:bool -> int -> float -> complex
# bool + float
res = True + 344.565
# 1.0 + 344.565 = 345.565
print(res ,type(res))
# int + float
res = 5 + 7.88
# 5.0 + 7.88 = 12.88
print(res ,type(res))
# float + complex
res = 5.66 + 9.1 -90j
# (5.66+0j) + (9.1-90j) = 14.76-90j
print(res ,type(res))
小數存在精度損耗問題,小數后面一般有時截取15~18位,但是不絕對