python入门之数据类型转换

Number数据类型的强转转换
var1 = 45
var2 = 6.78
var3 = "12345676"
var4 = "nihao223"
var5 = 88-2j
var6 = True
var7 = False
#int 强制类型转换整型 True强转int是1 False强转是int 是 0
#int 转字符串时只能强转纯字符串。

res = int(var2)
print(res)
res = int(var6)
print(res)
res = int(var7)
print(res)
res = int(var3)
print(res)
# res = int(var) 报错
# res = int(var) 报错

# float 强制转换成浮点型
res = float(var1)
print(res)
res = float(var3)
print(res)
res = float(var6)
print(res)
res = float(var7)
print(res)
# float强转字符串时也是一样的的结果,大家最好试一下
# complex 强制转换成复数
res = complex(var1)
print(res)
res = complex(var2)
print(res)
res = complex(var3)
print(res)
res = complex(var6)
print(res)
res = complex(var7)
print(res)
#一定要试一下看一下结果
# bool 强制转换成布尔类型 *****
res = bool(var1)
print(res)
res = bool(var4)
print(res)
res = bool(var5)
print(res)
res = bool({1,2,3})
print(res)
res = bool(None)
print(res)

# 通过bool强制转换为假的10个数据 
'''
0 , 0.0 , 0j ,False , [] ,() , "" ,set() ,{} , None
None 是一个关键字 本身代表空的 什么也没有
'''
'''
int() float() bool() complex() 默认声明一个当前类型的数据
'''
a = int()
b = float()
c = bool()
d = complex()
print(a,b,c,d)
容器类型的强制转换(str 、list、tuple、set、dict)

str(容器类型数据 / Number类型数据都可以)
只是基于原来的数据类型两边套上引号


var1 = "周芷若真漂亮"
var2 = ["周杰伦","陈奕迅"]
var3 = ("王宝强","马容","宋讲师")
var4 = {"红色的帽子","蓝色的帽子","绿色的帽子"}
var5 = {"A":"昨天请假了","B":"世界上最美的不过是回眸一笑","C":"每次看你,都都出了猥琐的小眼神"}
var6 = 5488


res = str(var2)
print(res)
res = str(var3)
print(res)
res = str(var4)
print(res)
res = str(var5)
print(res)
res = str(var6)

print(res,type(res))
print(repr(res)) #原型化输出字符串
#因为上面的输出都不是按照你想的方式输出的
#举个例子

res = str(var2)
print(res, type(res))
print(repr(res))
#额这个我还是输出结果给看下 不过我不会插入图片.....
['周杰伦', '王文'] <class 'str'>
"['周杰伦', '王文']"

list 列表强转其他类型
如果是列表强转字符串 ,把字符串中的每一个字符都当成新的元素放入列表当中
如果是其他容器类型数据,仅仅在套一个[],作为列表标识 字典单独记 只要键 不要值

res = list(var1)
res = list(var3)
res = list(var4)
res = list(var5)   # 强转字典时,只保留键,舍弃值
print(res)

tuple元组强转其他类型
如果是元组强转字符串 ,把字符串中的每一个字符都当成新的元素放入元组当中
如果是其他容器类型数据,仅仅在套一个()作为元组标识 字典单独记 :只要键 ,不要值。

res = tuple(var1)
print(res)
res = tuple(var2)
print(res)
res = tuple(var4)
print(res)
res = tuple(var5)
print(res)

set字典强转其他类型

如果是集合强转字符串 ,把字符串中的每一个字符都当成新的元素放入集合当中,但是注意集合无序 , 自动去重
如果是其他容器类型数据,仅仅在套一个{},作为集合标识 字典单独记 只要键 不要值 注意集合无序 , 自动去重

res = set(var1)
print(res)
res = set(var2)
print(res)
res = set(var3)
print(res)
res = set(var5)
print(res)
res = set()
print(res)

对列表进行去重

listvar = ["宋哲","弧形","流经","高挑胡","高挑胡","高挑胡"]
setvar = set(listvar)
listvar2 = list(setvar)
print(listvar2)
二级容器: 自己本身是一个容器,里面的元素还是一个容器类型数据 (list tuple set dict)

二级列表
列表里边还是个列表可以通过索引的方式查找列表元素。

listvar = [1,2,3,4,[5,6,7,8]]
res = listvar[-1][-1]
print(res)

二级元组:

tuplevar = (11,222,33,44,(1,2,3),55)
res = tuplevar[4][1]
print(res)

二级集合:

setvar = {1,2,3,4,(5,6,7,8)}
# 集合里面放的数据需要可哈希(不可变的)的数据
print(setvar)
#当把里边的元组改成列表时就会报错
#TypeError: unhashable type: 'list'

二级字典:

dictvar = {"a":{"c":444},"b":{"d":5555}}
res = dictvar["b"]
print (res)
res = dictvar["b"]['d']
print(res)

四级容器:

listvar = [1,2,3,4,[5,56,7,89,(99,101,103,1555,{"a":1,"b":2})]]
res = listvar[-1][-1][-1]['a']
print(res)

等长的二级容器 : 里面都是容器类型数据,每个容器里面元素个数都一样

listvar = [(1,2,3),(4,5,6)]
listvar2 = ([1,2],[4,5],[11,99])

强转字典的容器数据类型 必须是等长的二级容器,并且里面元素的个数是2个。
(1)外面是列表 , 里面是列表或元组或字符串 (不推荐字符串,有局限性)
因为出现3个字符串会出现匹配问题。容易报错

listvar = [("a",1),("b",2)]
res = dict(listvar)
print(res)
listvar = [["c",3],("d",4)]
res = dict(listvar)
print(res)
listvar = ["e1","f2"]
res = dict(listvar)
print(res)
listvar = [('a1',1),['b2',2],"c3"]
res = dict(listvar)
print(res)

(2)外面是元组 , 里面是列表或元组或字符串 (不推荐字符串,有局限性)

tuplevar = (["ccc",111],('aaaa',2222))
res = dict(tuplevar)
print(res)

(3)外面是集合,里面是元组或字符串

setvar = {('a',11),('b',22),"c3"}
dictvar = dict(setvar)
print(dictvar)

不推荐使用集合,因为集合无序,达不到想要的效果(会无序,也就是随意匹配了)

listvar = [{"a",1},{"b",2}]
tuplevar = ({"a",1},{"b",2})
dictvar = dict(listvar)
dictvar = dict(tuplevar)
print(dictvar)

str() list() tuple() set() dict() 都可以强转成对应的类型

res = str()
print(repr(res))
res2 = list()
print(res2)
res3 = tuple()
res3 = set()
res3 = dict()
print(res3)

你可能感兴趣的:(python,基础)