5 18 每日小三練

2022-07-15 19:36:14 字數 1602 閱讀 1380

簡述python的字串駐留機制?

含義:字串駐留是一種在記憶體中僅儲存乙份相同且不可變字串的方法(python的駐留機制對相同的字串只保留乙份拷貝,後續建立相同字串時,不會開闢新空間,而是把該字串的位址賦給新建立的變數),類似資料庫的儲存過程。

使用方法:1>系統維護interned字典,記錄已被駐留的字串物件。

2>當字串物件a需要駐留時,先在interned檢測是否存在,若存在則指向存在的字串物件,a的引用計數減1;若不存在,則記錄a到interned中。

什麼時候會用到字串駐留機制:1>字串長度為0或1時,預設採用駐留機制。

2>字串長度大於1時,且字串中只包含大小寫字母、數字、下劃線時,採用駐留機制。

3>字串只在編譯時進行駐留,而非執行時(.pyc檔案)。

4>用乘法得到的字串,如果結果長度 <=20且字串只包含數字、字母大小寫、下劃線,支援駐留。長度》20,不支援駐留。這樣的設計目的是為了保護.pcy檔案不會被錯誤**搞的過大。

5>對於[-5,256]之間的整數數字,python預設駐留。

6>pyhton提供intern方法強制2個字串指向同乙個物件。

python 乙個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.程式設計找出1000以內的所有完數。

import

math

for i in range(2, 1000):

factors = #

i 每次迴圈都清空

for j in range(1, math.floor(i/2)+1):

if i%j ==0:

if sum(factors) ==i:

print(i, end='

,')

如何在python中拷貝乙個物件, 並說明他們之間的區別?

有三種方法:賦值、淺拷貝、深拷貝

區別:賦值:只是複製了新物件的引用,不會開闢新的記憶體空間。

淺拷貝:建立新物件,其內容是原物件的引用。

#

三種方法:

"""#切片操作:

lst = [1,2,3,[4,5]]

lst1 = lst[:] #或者:lst1 = [each for each in lst]

""""""

#工廠函式:

lst = [1,2,3,[4,5]]

lst1 = list(lst)

"""#

copy函式

lst = [1,2,3,[4,5]]

lst1 = copy.copy(lst)

淺拷貝之所以稱為淺拷貝,是它僅僅只拷貝了一層,在lst中有乙個巢狀的list[4,5],如果我們修改了它,情況就不一樣了。

深拷貝:只有一種形式,copy模組中的deepcopy函式; 和淺拷貝對應,深拷貝拷貝了物件的所有元素,包括多層巢狀的元素;深拷貝出來的物件是乙個全新的物件,不再與原來的物件有任何關聯。(copy.deepcopy

)#1.外層新增元素時, 淺拷貝c不會隨原列表a變化而變化;內層list新增元素時,淺拷貝c才會變化。

#2.無論原列表a如何變化,深拷貝d都保持不變。

#3.賦值物件隨著原列表一起變化

每日一練 5 18

1 jquery 中有哪些方法可以遍歷節點?children 取得匹配元素的子元素集合 next 取得匹配元素後面緊鄰的同輩元素 prev 取得匹配元素前面緊鄰的同輩元素 siblings 取得匹配元素前後的所有同輩元素 closest 取得最近的匹配元素 find 取得匹配元素中的元素集合,包括直...

vim每日一練(三) 查詢匹配

基本查詢 n offset 向前找第n個出現的,offset 表示定位到找到的下面的第offset行 n offset 向 後找第n個出現的,offset 表示定位到找到的下面的第offset行 n 前向重複上個查詢 n 後向重複上個查詢 n n 重複上個查詢 n n 反方向重複上個查詢 n 向前查...

每日任務 每日一練 20200716

c語言陣列的學習 1.程式設計乙個逆序的陣列,只能交換,不能定義臨時陣列 include define arrlen 10 intmain int argc,char const ar for int i 0 i arrlen i swap for int i 0 i arrlen 2 i prin...