小知識點總結 一、Python2與Python3 的區別 1、Python2中可以加括弧輸出,也可不加輸出 Python3中必須加 2、python2 中有xrange(生成器)也有range python3中只有range 3、python2中的input為raw_input python3 中為 ...
小知識點總結
一、Python2與Python3 的區別 1、Python2中可以加括弧輸出,也可不加輸出 Python3中必須加 2、python2 中有xrange(生成器)也有range python3中只有range 3、python2中的input為raw_input python3 中為input 二、‘=’與is的區別 1、'='為賦值 '=='比較值是否相等 'is'比較的是記憶體地址 'id(內容)'--->記憶體地址,對於賦值運算來說 指向同一個地址 li1 = [1,2,3] li2 = li1 print(li1 is li2)---->True print(id(li1),id(li2)) 2、數字,字元串 小數據池 int的小數據池:數字的範圍-5---256數字在這個範圍之內,會共用一個記憶體地址 字元串的小數據池:不能含有特殊字元。有特殊字元不能共用一個記憶體地址。s*2o還是同一個地址,s*21以後都是兩個地址。只能是一個字元 4,剩下的 list dict tuple set沒有小數據池的概念 5,python3中的編碼 ascii一個字元用一個位元組,8位表示 unicode A:用32位來表示。4個位元組。中:4個位元組 uft-8:英文是8位1個位元組,中文用24位3個位元組來表示 gbk : 英文用1個位元組8位來表示,中文用16位,2個位元組來表示。 (1)各個編碼之間的二進位是不能互相識別的,會產生亂碼 (2)文件的儲存,傳輸,不能是Unicode(只能是utf-8,utf-16,gbk,gb2312,ascii等) py3: str 在記憶體中使用Unicode編碼。 bytes類型一種特殊的數據類型,和str很像,但不是以unicode編碼。 對於英文: str的表現形式---》s = 'alex' 編碼方式:0101010010 Unicode bytes: 表現形式: s =b'alex' 編碼方式:utf-8 對於中文: str的表現形式---》s = '中國' 編碼方式:0101010010 Unicode bytes: 表現形式: s =b'x\e91\e91\e01\e21\e31\e32'(16進位) 怎麼轉換 #encode如何將str--》bytes類型s1 ='alex' s11 = s1.encode('utf-8')' print(s11)------>b'alex' #utf-8 s2 ='中國' s2 = s2.encode('utf-8') print(s22) # 編碼方式:utf-8