day06 小資料池,再談編碼

2022-10-11 12:00:17 字數 1620 閱讀 3782

今日所學

一.  小資料池

二.  is 和==的區別

三.  編碼的問題

一.小資料池的作用 用來快取資料

可以作用的資料型別: 整數(int),

字串(str),

布林值(bool).

什麼是塊?

**塊: ⼀個模組, ⼀個函式, ⼀個類, 甚⾄每⼀個command命令都是⼀個**塊. ⼀個⽂件也是⼀ 個**塊, eval()和exec()執⾏的時候也是⼀個**塊

二 . is 和== 的區別

id()

通過id 可以查詢到乙個變數表示的值在記憶體中的位址.

例如:.    s = 'alex' 

s1=id(s)

print (s1)    # 4326667072

is 和 == 的區別

is 判斷的是兩個值得記憶體位址

" = = ""判斷的是2個值內部的元素是否相等  

現在我們大致可以這樣認為: 如果兩個值得記憶體位址相同,他們一定是相等的

如果只是值相等,那麼他們不一定是同乙個物件.

小資料池 : 一種資料快取機制 ,也被稱為駐留機制 .幾乎每個程式語言都喲偶類似的東西

小資料池只針對 整數 字串 布林值 .其他的資料型別不存在駐留機制.

小資料池的優點: 能夠提高一些字串,整數的運算速度 ,省略建立物件的過程.

缺點:在資料池中插入新的內容會花費很多的時間.

對於數字 : -5 - 256是會被加到小資料池中的,每一次使用的都是同日物件

對於字串:1. 如果字串的⻓度是0或者1, 都會預設進⾏快取

2. 字串⻓度⼤於1, 但是字串中只包含字⺟, 數字, 下劃線時才會快取

3. ⽤乘法的到的字串. 

①. 乘數為1, 僅包含數字, 字⺟, 下劃線時會被快取. 如果 包含其他字元, ⽽⻓度<=1 也會被駐存,

②. 乘數⼤於1 . 僅包含數字, 字⺟, 下劃 線這個時候會被快取. 但字串⻓度不能⼤於20 4. 指定駐留. 我們可以通過sys模組中的intern()函式來指定要駐留的內容.

三 ,編碼的補充

python 3.x中記憶體中使用的**是unicode碼

編碼回顧:

ascii:最早出現的編碼.裡面有英文大寫字母 小寫字母 數字 特殊符號

沒有中文  8bit  1byte

gbk: 中文國標碼 裡面包含立中文常用的編碼16bit 2byte

unicode: 萬國碼 裡面包含了所有的國家文字編碼 32bit 4byte 包含了ascii碼

utf-8:可變長度的萬國碼,是unicode的一種實現,最小字元佔8位

1.英文 8bit 1byte

2.歐洲文字 16bit 2byte

3. 中文 32bit 3byte

重點:  編碼和解碼   在國內 只有utf-8和gbk兩種形式

編碼:s.encode( )將一種文字變成計算機所識別的語言

解碼:s.decode() 將計算機所識別的語言變成你識別的語言

s = "我是⽂字" 

bs=s.encode("utf-8")

bss=bs.decode("utf-8")

print(bss)  這就是相當於實現了程式的編碼和解碼

day06 再談編碼 and 作業

1.小資料池,其他語言又叫常量池 id 檢視變數的記憶體位址 is和 is 判斷記憶體位址是否一致 判斷內容是否一致 小資料池的作用 為了快速的建立字串物件,可以減少記憶體的浪費 用快取的前提 資料可以被共享。不可變.2.再談編碼 ascii 數字,字母,特殊字元。位元組 8bit 1byte gb...

day06 小資料池 深淺拷貝 集合

小資料池 快取機制 駐留機制 只是一種規格,不會實際的開闢乙個空間 a 10 b 10 print a b a 10 b 10 print a is b is判斷基於記憶體位址進行判斷 print id a print id b 小資料池支援的物件也是 數字,字串,布林值 乘法的時候總長度不能超過2...

資料探勘 day06

shoot射擊遊戲專案四 1.需求分析 a 將窗體的大小設定為常量 b 畫物件 想畫物件先獲取到,針對每乙個物件都能夠獲取到,獲取到的行為是共有的,設計到父類中 flyingobject每乙個物件得到的行為都是不一樣的,設計了乙個抽象方法 getlmage 在不同狀態下,得到不同的 狀態 設計到父類...