基础数据类型转换
- 可变数据类型: 列表, 字典, 集合
- 不可变数据类型 ; 字符串, 数字, 元组
- 容器数据类型:字符串,列表,元组,字典,集合
- 非容器数据类型:数字
1.自动类型转换
a = True
b = 2
c = 3.14
d = 1+2j
print(a + b, type(a + b))
print(b + c, type(b + c))
print(c + d, type(c + d))
- 当两个不用的数值进行运算时,结果会向更高精度进行计算
2.强制类型转换
a = 'abc'
b = '123'
c = 456
d = 3.14
e = True
f = [1, 2, 'a', 'b']
g = (1, 2, 'a', 'b')
h = {1:'a', 2:'b'}
i = {1, 2, 'a', 'b'}
# 字符串类型
s = [a, b, c, d, e, f, g, h, i]
for x in range(0, 9):
print(s[x], type(s[x]), '---->', str(s[x]), type(str(s[x])))
# 整型
print()
s = [b, d, e]
for x in range(0, 3):
print(s[x], type(s[x]), '---->', int(s[x]), type(int(s[x])))
# 浮点型
print()
s = [b, c, e]
for x in range(0, 3):
print(s[x], type(s[x]), '---->', float(s[x]), type(float(s[x])))
# 布尔类型
print()
s = [a, b, c, d, e, f, g, h, i]
for x in range(0, 9):
print(s[x], type(s[x]), '---->', bool(s[x]), type(bool(s[x])))
z = ['', 0, 0.0, False, [], (), {} , set()]
for x in range(0, 7):
print(z[x], type(z[x]), '---->', bool(z[x]), type(bool(z[x])))
#列表类型
print()
s = [a, b, f, g, h, i]
for x in range(0, 6):
print(s[x], type(s[x]), '---->', list(s[x]), type(list(s[x])))
#元组类型
print()
s = [a, b, f, g, h, i]
for x in range(0, 6):
print(s[x], type(s[x]), '---->', tuple(s[x]), type(tuple(s[x])))
# 集合类型
print()
s = [a, b, f, g, h, i]
for x in range(0, 6):
print(s[x], type(s[x]), '---->', set(s[x]), type(set(s[x])))
# 字典类型
print()
l = [(1, 'a'), (2, 'b')]
m = ((1, 'a'), [2, 'b'])
n = {(1, 'a'), (2, 'b')}
o = [((1, 2, 3), ('a', 'b', 'c')), (('d', 'e', 'f'), (4, 5, 6))]
s = [l, m, n, o]
for x in range(0, 4):
print(s[x], type(s[x]), '---->', dict(s[x]), type(dict(s[x])))
- 数字类型之间可以互相转换
- 字符串类型转换为整型或浮点类型时,只能转换只包含数字的字符串类型
- 其他类型均能转换为布尔类型
-
'', 0, 0.0, False, [], (), {} , set()
转换为布尔类型时为False
,其余均为 True
- 非容器类型不能转换为列表、元组、字典、集合类型
- 字典类型转换为列表、元组、集合类型时,只保留字典中的键
- 容器类型转换为集合时,结果是无序的
- 列表、元组和集合转换为字典时,要求至少为二级容器,且每个元素中的元素成对出现