Python自学笔记——3.基础数据类型转换

基础数据类型转换

  • 数据类型转换的形式
    1. 自动类型转换
    2. 强制类型转换
  • 可变数据类型: 列表, 字典, 集合
  • 不可变数据类型 ; 字符串, 数字, 元组
  • 容器数据类型:字符串,列表,元组,字典,集合
  • 非容器数据类型:数字

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
  • 非容器类型不能转换为列表、元组、字典、集合类型
  • 字典类型转换为列表、元组、集合类型时,只保留字典中的键
  • 容器类型转换为集合时,结果是无序的
  • 列表、元组和集合转换为字典时,要求至少为二级容器,且每个元素中的元素成对出现

你可能感兴趣的:(Python自学笔记——3.基础数据类型转换)