代碼塊

什麼是代碼塊

  在python中代碼塊指的是python

    一個模塊,一個函數,一個類,一個文件等都是代碼塊緩存

  而在用戶交互裏面,就是cmd中進入python解釋器例,每一行代碼就是一個代碼塊.網絡

is

  is 是比較的兩邊的內存地址是否相等函數

==

  比較倆邊的數值是否相等性能

id

  指內存地址,利用id()內置函數去查詢一個數據的內存地址優化

小數據池(駐留機制,小整數緩存機制)

  是python對內存作的一個優化,對一些經常使用的數字(整數-5~256),必定規律的字符串提早建立一個小數據池(容器),編碼

  優勢:節省內存,在內存級別提升性能與效率,經常使用的字符串能夠直接從小數據池中提用spa

  缺點:在「池」中建立或插入字符串,整數時,會「相對」花費更多的時間code

  int:對象

    在小數據池中保存的有(-5~256)之間的整數,即之間從小數據池中調用

  str:

  1.對於字符串是ASCII碼中的,默認採用小數據池(駐留機制)

    注意:字符串的內容不包括中文,字符串中含有特殊字符的話長度(字符串的長度)只能是1纔是True,

  2.對於乘法,若是a = "afhjdhsaflh***"   b = a *1     print(a is b)     輸出都是True,即都默認採用駐留機制

     若是是乘於2以上的  即a = "aslfj"*4  b = "aslfj"*4   總長度必須在20之內纔是默認採用駐留機制

  指定駐留

from sys import intern
a = intern('hello!@'*20)
b = intern('hello!@'*20)
print(a is b)
#指定駐留是你能夠指定任意的字符串加入到小數據池中,讓其只在內存中建立一個對象,多個變量都是指向這一個字符串。

  bool

    布爾值始終保存在小數據池內

編碼升級

  不一樣編碼直接不能夠直接識別,都是進過轉化才能夠識別的

  網絡傳輸和存儲:因爲Unicode太佔用內存,因此必須以非Unicode的編碼進行網絡傳輸或者存儲

  在大環境python3x中

    str:字符串的編碼是Unicode

    其他都是utf-8

  因此引入了bytes的數據類型概念

  ytes類型和字符串類型是相似關係,字符串類型的內置函數在bytes類型均可以使用。

而區別是bytes類型沒辦法以b'中文字符串'的類型存儲中文數據,只有字符串能夠,而且bytes類型的內存編碼方式不是Unicode,因此當字符串須要進行網絡傳輸和存儲時必須進行編碼,就是把Unicode->其餘編碼方式進行操做。 編碼及解碼: str->bytes encode 編碼 bytes->str decode 解碼

相關文章
相關標籤/搜索