1. 程式人生 > >pyhon學習第六天 代碼塊,小數據池(緩存機制,駐留機制),is == id =,字符編碼

pyhon學習第六天 代碼塊,小數據池(緩存機制,駐留機制),is == id =,字符編碼

以及 復制代碼 賦值 查看 他會 數字 tool 優化 itl

1.代碼塊

  能夠實現某項功能的:模塊,函數,類,文件

  ##在python的交互模式下,一行代碼就是一個代碼塊分別儲存在不同文件中

2.

  id is ==和=

  =是賦值

  ==比較兩邊數據內容是否相等

  is 比較內存地址是否一致(內存裏的id都是唯一的)

  id() 查看數據的id地址

3.小數據池(緩存機制,駐留機制):

  小數據池是python對內存做的一個優化

    優化內容:python將-5到256的整數.以及一定規律的字符串提前在內存找那個創建了固定的儲存空間

  適用小數據池的數據類型:*****

    int str bool

技術分享圖片
b=1231
a=321
c=a is b
print(c,id(c))
d=b is a
print(d,id(d))
bool型id固定
技術分享圖片

4.

  相同代碼塊:

    python在同一個代碼塊中創建新變量時(初始化對象命令時),他會將變量與值的對應關系放到一個字典當中,

  如果之後再代碼塊中再初始化對象命令,python會在字典中尋找,如果存在相同的值,會映射到相同的id.

  不同代碼塊:

    python在不同的代碼塊中:初始化對象命令時,會在小數據池中尋找是否有相同的值

5.

  網絡傳輸和硬盤儲存數據,一定不能以Unicode編碼方式傳輸

  對於在python3版本中:

    內存的默認編碼方式是Unicode

  str 與 bytes 類型:

    str的所有操作bytes都有

  str 與 bytes 類型之間的區別:

    在英文中:

      str: ‘alex‘

      bytes: b‘alex‘

    在中文中:

      str: ‘太白‘

      bytes: 用encode(‘utf-8‘)編碼

         用decode(‘utf-8‘)解碼

a=‘太白‘
b=a.encode(‘utf-8‘)
print(b) #b‘\xe5\xa4\xaa\xe7\x99\xbd‘
c=b.decode(‘utf-8‘)
print(c) #太白

6.python整體的小數據池和代碼塊中的小數據池:都是形成一個字典,用於儲存int str bool類型數據

技術分享圖片
b={1:[3]}
a={1:[3]}
print(id(a),id(b))
#2767810096728 2767810096656
a=1000
b=1000
print(id(a),id(b))
#1667652283280 1667652283280
技術分享圖片

7.gbk編碼和utf-8編碼之間的轉換:

  當是英文字母,數字,特殊字符時,可支架轉換

  其他數據通過unicode中轉

pyhon學習第六天 代碼塊,小數據池(緩存機制,駐留機制),is == id =,字符編碼