1. 程式人生 > >Python學習(四)

Python學習(四)

編碼 num 開始 元組 硬盤 pytho 英文 == color

一、枚舉

  enumerate,for i in enumerate(可叠代對象),返回元組,內容是(序列號,可叠代的每一個元素)

        for i,j in enumerate(可叠代對象,開始序列號),返回序列號,可叠代的每一個元素

a = abc
b = {a:1,b:2}
for i in enumerate(a):
    print(i)
#輸出:
#(0, ‘a‘)
#(1, ‘b‘)
#(2, ‘c‘)

for i,j in enumerate(a,1):
    print(i,j)
#輸出:
#1 a
#2 b
#3 c

二、內存地址:id()

  ==比較的是值,is 比較的是內存地址

  小數據池:int:-5~256

       str:1.不能有空格  

         2.長度不能超過20  

         3.不能有特殊字符

a = []
b = []
print(a == b,a is b)  #True False

a = abc
b = abc
print(a == b,a is b)  #True True

a = -6
b = -6
print(a == b,a is b)  #True False

三、編碼

  在python3中,str的表現形式為字符串,bytes的表現形式為b字符串,str的實際編碼方式是unicode,bytes的編碼方式是utf-8、gbk、gb2312...

  在python3中,unicode:1個字符(無論中文、英文、數字),都用4個字節表示

         utf-8:用最少的字節表示一個字符,英文占1個字節,歐洲文字占2個字節,亞洲文字占3個字節

         gbk:英文占1個字節,中文占2個字節

  在python3中,字符串存在內存中是unicode編碼方式,不能直接傳輸或者存儲在硬盤,要轉成bytes類型,unicode轉bytes:a.endode(‘編碼方式‘),bytes轉unicode:a.decode(‘編碼方式‘)

         utf-8和gbk、gb2312等編碼方式互不識別,如果要轉化,要先解碼(decode)成unicode方式,再編碼(encode)成對應的方式。

a = abc
b = a.encode(utf-8)
print(b,type(b))  #b‘abc‘ <class ‘bytes‘>

a = 你好
b = a.encode(utf-8)
print(b,type(b))  #b‘\xe4\xbd\xa0\xe5\xa5\xbd‘ <class ‘bytes‘>
c = b.decode()
print(c,type(c))  #你好 <class ‘str‘>
d = c.encode(gbk)
print(d,type(d))  #b‘\xc4\xe3\xba\xc3‘ <class ‘bytes‘>

Python學習(四)