可以转:int float bool 纯数字字符串
res = int(var2) # 3
res = int(var3) # True => 1 False => 0
res = int(var4) # error 复数不能转换为整形
res = int(var5) # 123
res = int(var6) # error 不是纯数字
print(res , type(res))
float 强制转换为浮点型
可以转: int float bool 纯数字字符串
res = float(var1) # 100.0
res = float(var3) # False => 0.0 True => 1.0
res = float(var4) # error
res = float(var5) # 123.0
print(res , type(res))
complex 强制转换为复数
可以转: int float bool 纯数字字符串 complex
res = complex(var1) # (100+0j)
res = complex(var2) # (3.9+0j)
res = complex(var3) # False => 0j True => 1+0j
res = complex(var5) # 123+0j
print(res , type(res))
bool 强制转换为布尔型
可以转: bool类型可以转换一切数据
res = bool(var6) # True
res = bool(var4) # True
布尔类型为假的十种情况 (重中之重)
""" 0 , 0.0 , 0j , False , '' , [] , (),{},set() , None """
res = bool(0)
res = bool(0.0)
res = bool(False)
res = bool(0j)
res = bool('')
res = bool([])
res = bool(())
res = bool({})
res = bool(set())
res = bool(None)
print(res)
None 代表空的,什么也没有,一般用作变量的初始化
a = None
b = None
自动类型转换Number
精度上从小到大的顺序:bool => int => float => complex
默认在系统自动转换的时候,低精度向高精度转换.
bool + int
res = True + 15 # 1 + 15 => 16
bool + float
res = True + 3.8 # 1.0 + 3.8 = 4.8
bool + complex
res = True + 3-90j # 1+0j + 3-90j => 4-90j
int + float
res = 4 + 4.1 # 4.0+4.1 = 8.1
int + complex
res = 5 + 4-90j # 9-90j
float + complex
res = 4.3 + 5 - 3j #4.3+5.0-3j = 9.3-3j