1. 程式人生 > 實用技巧 >Python基礎之六大資料型別

Python基礎之六大資料型別

# ### Number ( int float bool complex)
# int 整型 (正整數 0  負整數)
intvar = 123
print(intvar)

# type 獲取值的型別
res = type(intvar)
print(res)

# id 獲取一個值的地址
res = id(intvar)
print(res)

# 二進位制整型
intvar = 0b1111
print(intvar)
print( type(intvar) )
print( id(intvar) )

# 八進位制整型
intvar = 0o125
print(intvar)
print( type(intvar) )
print( id(intvar) ) # 十六進位制整型 intvar = 0x1010 var1 = 4112 print(intvar) print(id(intvar), id(var1)) print( type(intvar) ) # ### Number (int float bool complex) # (1) float 浮點型 小數 # 表達方式1 floatvar = 4.88 print(floatvar) print( type(floatvar) ) # 表達方式2 科學計數法 floatvar = 6.7e4 print(floatvar) print( type(floatvar) )
# (2) bool 布林型 True 真的 False 假的 只有兩個值 boolvar = True boolvar = False print( boolvar ) print( type(boolvar) ) # (3) complex 複數 """ complex 實數 + 虛數 3+4j 3: 實數 4j: 虛數 j: 如果有一個數,他的平方等於-1,那麼這個數就是j,表達的是高精度的型別;(科學家認為有) """ # 表達方式一 complexvar = 56-3j complexvar = -3j print( complexvar ) print( type(complexvar) )
# 表達方式二 # 語法 : complex(實數,虛數) complexvar = complex(56,-3) print( complexvar ) print( type(complexvar) ) # ### 字串 str """ 用引號引起來的就是字串 """ """ # 轉義字元 : \ + 某個字元 (1) 將有意義的字元變得無意義 (2) 將無意義的字元變得有意義 \n , \r\n : 換行 \t : tab縮排(水平製表符)[一般來說,一個鎖進是4個空格的距離 \r : 將後面的字元直接拉到當前行行首 """ # (1) 單引號引起來的字串 strvar = '123456' print(strvar) print( type(strvar) ) # (2) 雙引號引起來的字串 # 將無意義的字元變得有意義 strvar = "12345\n6" strvar = "123456,\r\n123456" strvar = "123456,123456\t123456 123456" strvar = "123456,\r123456" strvar = "123456,\n123456\r123456" # 將有意義的字元變得無意義 strvar = "123456" print(strvar) print( type(strvar) ) # (3) 三引號引起來的字串 ''' """(支援跨行的效果) strvar = ''' 123456, 123'''456''',123456 ''' print(strvar) print( type(strvar) ) # (4) 元字串 r"字串" 不轉義字元,原型化輸出字串 strvar = r"E:\nython31\tay2" print(strvar) # (5) 格式化字串 """ 語法 : "字串" % (值1,值2,值3) %d 整型佔位符 %f 浮點型佔位符 %s 字串佔位符 """ # %d 整型佔位符 strvar = "123456,123456%123456,123456" % (5) print(strvar) # %2d 佔兩位 原字串預設居右 strvar = "123456%123456" % (3) print(strvar) strvar = "123456%123456" % (3) print(strvar) # %-2d 佔兩位 原字串預設居左 strvar = "123456%-2d123456 % (30000) print(strvar) # %f 浮點型佔位符 strvar = "123456%f123456" % (9.9) print(strvar) # %.2f 小數點保留2位 strvar = "123456%.2f123456" % (9.9) print(strvar) # %f 存在四捨五入的情況 strvar = "123456%.1f123456" % (9.876542342) print(strvar) # %s 字串佔位符 strvar = "%s" % ("123456") print(strvar) # 綜合案例 strvar = "%s123456,123456,123456%d123456,123456%.1f123456" % ("123456",10,9.9) # strvar = "%s123456,123456 x,123456%d123456%.1f123456" % ("123456",10,9.9) print(strvar) # 可以全部使用%s佔位符進行取代 strvar = "%s123456,123456x,123456%s123456,123456%s123456" % ("123456",10,9.912345) print(strvar)


# ### 容器型別資料( str list tuple set dict )

# ### list 列表
"""特點: 可獲取,可修改,有序"""
# 定義一個空列表
listvar = []
print(listvar , type(listvar) )

# 定義一個普通列表
# 正向下標索引 0 1 2 3 4
listvar = [100,19.123,True,1+12j,"馬生平"]
# 逆向下標索引 -5 -4 -3 -2 -1
print(listvar)


# 1.獲取列表當中的值
res = listvar[2]
res = listvar[-3]
print(res)


# 獲取列表當中最後一個元素
# python 特有
print(listvar[-1])

# 通用寫法
"""
len 獲取容器型別資料的長度(元素的總個數)
"""
res = len(listvar)
print(res) # 5

res = listvar[res - 1]
print(res)

# 簡寫
print(listvar[len(listvar) - 1])

# 2.修改列表裡面的元素
listvar[-3] = False
print(listvar)


# ### tuple 元組
"""特點: 可獲取,不可修改,有序"""
# 定義一個空元組
tuplevar = ()
print(tuplevar , type(tuplevar))


# 定義一個普通元組
# 正向下標索引 0 1 2 3
tuplevar = ("1","2","3","4")
# 逆向下標索引 -4 -3 -2 -1


# 1.獲取元組當中的元素
res = tuplevar[1]
res = tuplevar[-1]
print(res)

# 2.可以修改元組當中的值? 不行!
# tuplevar[0] = "4" error


# 3.判定元組的型別
"""逗號才是區分是否是元組的識別符號"""
tuplevar = (123,)
tuplevar = 123,
print(tuplevar , type(tuplevar))


# ### str 字串
""" 特徵: 可獲取,不可修改,有序 """
# 0 1 234 5 6 7 8
strvar = "我愛你,親愛的菇涼"
# -9-8-7-6-5-4-3-2-1

# 1.可以通過下標獲取字串當中的元素
res = strvar[1]
res = strvar[-8]
print(res)

# 2.可以修改字串當中的元素麼? 不行!
# strvar[1] = "恨" error

# ### 集合 set (作用:集合之間的交差並補)
""" 特點: 無序,自動去重"""
# 定義一個集合
setvar = {"金城武","王俊凱","喻文波","王文"}
print(setvar , type(setvar))


# 1.集合無序
# 獲取集合中的元素可以麼? 不可以!
# res = setvar[3] error
# 修改集合中的元素可以麼? 不可以!
# setvar[0] = "123" error

# 2.自動去重
setvar = {"1","2","3","4","4","4","4"}
print(setvar)

# 3.定義一個空集合
# setvar = {}
setvar = set()
print(setvar , type(setvar))


# ### 字典 dict
"""
特點: 鍵值對儲存的資料,表面上有序,實際上無序
語法: { 鍵1:值1 , 鍵2:值2 ..... }
"""

# 1.定義一個空字典
dictvar = {}
print(dictvar , type(dictvar))

# 2.定義一個空字典
dictvar = {"1":"2","3":"4","5":"6","7":"8","9":"10"}

# 3.獲取字典中的值
res = dictvar["1"]
print(res)

# 4.修改字典當中的值
dictvar["1"] = "2"
print(dictvar)


# ### 字典的鍵 和 集合中的值 對資料型別有要求
dictvar = {333:"aaa",False:"bbb",9+3j:"ccc",3.14:"ddd",(1,2,3,4):"fff","中文":"123"}
print(dictvar)

"""
字典的鍵 和 集合中的值 資料型別的要求必須是如下幾種:
如下型別可以: 不可變資料(可雜湊的資料型別)
Number(int , float , bool ,complex) , str , tuple

不允許的型別: 可變資料(不可雜湊的資料型別)
list , set , dict

但凡提到雜湊演算法(hash),都是典型的無序特徵
目的: 為了更加均勻的把資料分配到記憶體裡,底層用的演算法類似於取模.

python3.6版本之後,對字典做了優化,儲存資料的時候用雜湊演算法
但是在拿出資料的時候,重新按照定義字典時的順序進行重新排序
所以看起來有序,實際上無序
"""

# dic = {{"a","b"}:55}
# setvar = {{"a":1,"b":2},45}