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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章