基础数据类型转换

字符串  string
数字    整型 int 浮点型 float 布尔型 bool 复数 complex
列表    list
元组    tuple
字典    dict
集合    set

数据类型的分类
    可变数据类型:   list,dict,set
    不可变数据类型: string,number,tuple

    容器数据类型:   string,list,tuple,dict,set
    非容器数据类型: number

数据类型转换的目的?
    为了使数据可以进行运算;不同数据类型之间不能运算
数据类型转换的方式?
    1.自动类型转换    2.强制类型转换

当两个数据类型不同的值进行运算时,结果向着更高的精度运算
bool ==> int ==> float ==> complex
自动类型转换
a,b = 12,1.2

c = b + True
print(c,type(c))

d = a + b
print(d,type(d))

e = True + False
print(e,type(e))

2.2 <class 'float'>
13.2 <class 'float'>
1 <class 'int'>
强制类型转换

使用下列函数可以把其他类型的数据转换为对应的数据类型
str()、int()、float()、bool()、list()、tuple()、dict()、set()

a1 = '22'
a2 = '2.2'
a3 = '12ab'
b = 12
c = 3.2
d = True
e = [1,'a']
f = (2,'b')
g = {3:'three','c':10}
h = {4,'d'}

# 所有数据类型都可以转换为字符串类型
print(str(c),type(str(c)))
print(str(d),type(str(d)))
print(str(g),type(str(g)))
print(str(h),type(str(h)))

# 字符串内容是整数时可以转换为整型,其他容器类型数据不能转换为整型,浮点型转换为整型只保留整数部分
print(int(a1),type(int(a1)))
print(int(c),type(int(c)))
print(int(d),type(int(d)))


# 字符串内容是数字时可以转换为浮点型,其他容器类型数据不能转换为浮点型
print(float(a1),type(float(a1)))
print(float(a2),type(float(a2)))
print(float(b),type(float(b)))
print(float(d),type(float(d)))


# 其他数据类型转换为布尔型时,有以下几种情况结果为False,其他情况结果为True
# ''  0  0.0  False  ()  []  {}  set()
print(bool(0.0),type(bool(0.0)))
print(bool(set()),type(bool(set())))


3.2 <class 'str'>
True <class 'str'>
{3: 'three', 'c': 10} <class 'str'>
{'d', 4} <class 'str'>
------------------------------
22 <class 'int'>
3 <class 'int'>
1 <class 'int'>
------------------------------
22.0 <class 'float'>
2.2 <class 'float'>
12.0 <class 'float'>
1.0 <class 'float'>
------------------------------
False <class 'bool'>
False <class 'bool'>