今日所學
一. 小資料池
二. 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 在不同狀態下,得到不同的 狀態 設計到父類...