




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、WORD格式1.Python 是如何進(jìn)行內(nèi)存管理的?答 : 從三個(gè)方面來說 , 一對象的引用計(jì)數(shù)機(jī)制 , 二垃圾回收機(jī)制 , 三內(nèi)存池機(jī)制一、對 象的引用計(jì)數(shù)機(jī)制Python 內(nèi)部使用引用計(jì)數(shù),來保持追蹤內(nèi)存中的對象, 所有對象都有引用計(jì)數(shù)。引用計(jì)數(shù)增加的情況:1,一個(gè)對象分配一個(gè)新名稱2,將其放入一個(gè)容器中(如列表、元組或字典)引用計(jì)數(shù)減少的情況:1,使用 del 語句對對象別名顯示的銷毀2,引用超出作用域或被重新賦值sys.getrefcount( ) 函數(shù)可以獲得對象的當(dāng)前引用計(jì)數(shù)多數(shù)情況下,引用計(jì)數(shù)比你猜測得要大得多。 對于不可變數(shù)據(jù)(如數(shù)字和字符串),解釋器會 在程序的不同部分共享內(nèi)
2、存,以便節(jié)約內(nèi)存。二、垃圾回收1,當(dāng)一個(gè)對象的引用計(jì)數(shù)歸零時(shí),它將被垃圾收集機(jī)制處理掉。2,當(dāng)兩個(gè)對象 a 和 b 相互引用時(shí), del 語句可以減少 a 和 b 的引用計(jì)數(shù),并銷 毀用于引用底層對象的名稱。然而由于每個(gè)對象都包含一個(gè)對其他對象的應(yīng)用,因此引用計(jì) 數(shù)不會歸零,對象也不會銷毀。 (從而導(dǎo)致內(nèi)存泄露)。為解決這一問題,解釋器會定期執(zhí) 行一個(gè)循環(huán)檢測器, 搜索不可訪問對象的循環(huán)并刪除它們。三、內(nèi)存池機(jī)制Python 提供了對內(nèi)存的垃圾收集機(jī)制,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操 作系統(tǒng)。1, Pymalloc 機(jī)制。為了加速 Python 的執(zhí)行效率, Python 引入了一
3、個(gè)內(nèi)存池機(jī)制,用于管 理對小塊內(nèi)存的申請和釋放。2, Python 中所有小于 256 個(gè)字節(jié)的對象都使用 pymalloc 實(shí)現(xiàn)的分配器,而大的對象則使 用系統(tǒng)的 malloc3,對于 Python 他們的內(nèi)存池。對象,如整數(shù),浮點(diǎn)數(shù)和 List ,都有其獨(dú)立的私有內(nèi)存池,對象間不共享也就是說如果你分配又釋放了大量的整數(shù),用于緩存這些整數(shù)的內(nèi)存就不能再分配給浮點(diǎn)數(shù)。2. 什么是 lambda函數(shù)?它有什么好處 ?答: lambda 表達(dá)式,通常是在需要一個(gè)函數(shù),但是又不想費(fèi)神去命名一個(gè)函數(shù)的場合下使 用,也就是指匿名函數(shù) lambda 函數(shù):首要用途是指點(diǎn)短小的回調(diào)函數(shù) lambda arg
4、uments:expression a=lambdax,y:x+y a(3,11) 3.Python 里面如何實(shí)現(xiàn) tuple 和 list 的轉(zhuǎn)換?答:直接使用 tuple 和 list 函數(shù)就行了, type() 可以判斷對象的類型4. 請寫出一段 Python 代碼實(shí)現(xiàn)刪除一個(gè)list 里面的重復(fù)元素答: 1, 使用 set 函數(shù), set(list) 2,使用字典函數(shù), a=1,2,4,2,4,5,6,5,7,8,9,0 b= b=b.fromkeys(a) c=list(b.keys()5. 編程用 sort 進(jìn)行排序,然后從最后一個(gè)元素開始判斷 a=1,2,4,2,4,5,7,10
5、,5,5,7,8,9,0,3 a.sort() last=a-1 for i inrange(len(a)-2,-1,-1):if last=ai:del aielse:last=aiprint(a)6. Python 里面如何拷貝一個(gè)對象?(賦值,淺拷貝,深拷貝的區(qū)別)答:賦值( = ),就是創(chuàng)建了對象的一個(gè)新的引用,修改其中任意一個(gè)變量都會影響到另 一個(gè)。淺拷貝:創(chuàng)建一個(gè)新的對象, 但它包含的是對原始對象中包含項(xiàng)的引用 (如果用 引用的方式修改其中一個(gè)對象,另外一個(gè)也會修改改變) 1, 完全切片方法; 2 ,工廠函數(shù), 如 list(); 3,copy 模塊的 copy() 函數(shù) 深拷貝:
6、創(chuàng)建一個(gè)新的對象,并且遞歸的復(fù)制它所包含的對象(修改其中一個(gè),另外一個(gè)不會改變) copy 模塊的 deep.deepcopy() 函數(shù) 7. 介紹一下 except 的用法和作用?答: try ?except ?except ?else ?finally ?執(zhí)行 try 下的語句,如果引發(fā)異常,則執(zhí)行過程會跳到 except 語句。對每個(gè) ex cept 分支 順序嘗試執(zhí)行,如果引發(fā)的異常與 except 中的異常組匹配,執(zhí)行相應(yīng)的語句。如果所有的 except 都不匹配,則異常會傳遞到下一個(gè)調(diào)用本代碼的最高層 try 代碼中。try 下的語句正常執(zhí)行,則執(zhí)行 else 塊代碼。如果發(fā)生異常
7、,就不會執(zhí)行如果存在 finally 語句,最后總是會執(zhí)行。8. Python 中 pass 語句的作用是什么?答: pass 語句不會執(zhí)行任何操作,一般作為占位符或者創(chuàng)建占位程序, whileFa lse:pass9. 介紹一下 Python 下 range() 函數(shù)的用法?答:列出一組數(shù)據(jù),經(jīng)常用在 for in range() 循環(huán)中10. 如何用 Python 來進(jìn)行查詢和替換一個(gè)文本字符串?答:可以使用 re 模塊中的 sub() 函數(shù)或者 subn() 函數(shù)來進(jìn)行查詢和替換,格式: sub(replacement, string,count=0)( replacement 是被替換
8、成的文本, s tring是需要被替換的文本, count 是一個(gè)可選參數(shù),指最大被替換的數(shù)量)import rep=pil blue|white ')e( |redprint(p.s colo ' ,socks 'blueand red shoes' )ub( urcolour socks and colourshoesprint(p.sub( colour ' ,socks 'blueand red shoes ' ,count=1)colour socks and redshoes subn() 方法執(zhí)行的效果跟 sub() 一樣,
9、不過它會返回一個(gè)二維數(shù)組,包括替換后的新的字 符串和總共替換的數(shù)量11. Python 里面 match() 和 search() 的區(qū)別?答:模塊中match(pattern,string,flags檢查strin 的開頭是否與patternre),g配。re模塊中 research(pattern,string,flags在搜索 pattern 的第一個(gè)匹配值。),string匹print(re.mat super ' supers ' ).spanch(tition,()(0, 5)print(re.mat ( super ' ,insup ch erable &
10、#39; )Noneprint(re.seasuper supers ' ).spanrch(tition ', ()(0, 5) print(re.sea rch( super insupe ' ).span( rable ', )(2, 7)12. 用 Python 匹配 HTML tag 的時(shí)候, <.> 和 <.?> 有什么區(qū)別?答:術(shù) 語叫貪婪匹配 ( <.> ) 和非貪婪匹配 (<. ?> )專業(yè)資料整理例如 :testtest<.*?> :13.Python 里面如何生成隨機(jī)數(shù)?答: ra
11、ndom 模塊隨機(jī)整數(shù): random.randint(a,b):返回隨機(jī)整數(shù)x,a<=x<=b:返回一個(gè)范圍在 (start,stop,step)之間的隨機(jī)random.randrange(start,stop,step) 整數(shù),不包括結(jié)束值。隨機(jī)實(shí)數(shù): random.random(): 返回 0 到 1 之間的浮點(diǎn)數(shù)random.uniform(a,b):返回指定范圍內(nèi)的浮點(diǎn)數(shù)。14. 有沒有一個(gè)工具可以幫助查找python 的 bug 和進(jìn)行靜態(tài)的代碼分析?代碼的靜態(tài)分析工具,它可以幫助查找 python 代碼的 bug,答: PyChecker 是一個(gè) python 會對代
12、碼的復(fù)雜度和格式提出警告Pylint 是另外一個(gè)工具可以進(jìn)行codingstandard檢查聲明:15. 如何在一個(gè) function 里面設(shè)置一個(gè)全局的變量? 答:解決方法是在 function 的開始插入一個(gè) global def f() global x 16. 單引號,雙引號,三引號的區(qū)別答:單引號和雙引號是等效的,以包含注釋如果要換行,需要符號(), 三引號則可以直接換行,并且可如果要表示 Let ' sgo 這個(gè)字符串單引號: s4 = Let ' sgo'雙引號: s5 = “ Let 'gos”s6 = realyI like “ python
13、” ! '這就是單引號和雙引號都可以表示字符串的原因了2.49 判斷對錯(cuò):已知 x = 3 ,那么賦值語句 x = 'abcedfg' 是無法 正常執(zhí)行的。2.50 判斷對錯(cuò): Python 變量使用前必須先聲明, 并且一旦聲明就 不能在當(dāng)前作用域內(nèi)改變其類型了。2.51 判斷對錯(cuò): Python 不允許使用關(guān)鍵字作為變量名, 但是允許 使用內(nèi)置函數(shù)名作為變量名,不過這會改變函數(shù)名的含義,所以不建議這樣做。2.52 判斷對錯(cuò):在 Python 中可以使用 if 作為變量名。2.53 判斷對錯(cuò):在 Python 3.x 中可以使用中文作為變量名。2.54 判斷對錯(cuò): Py
14、thon 變量名必須以字母或下劃線開頭, 并且區(qū) 分字母大小寫。2.55 判斷對錯(cuò): 加法運(yùn)算符可以用來連接字符串并生成新字符串。2.56 判斷對錯(cuò): x = 9999*9999這樣的語句在 Python 中無法運(yùn)行,因?yàn)閿?shù)字太大了超出了整型變量的表示范圍。2.57判斷對錯(cuò):3+4j不是合法的Python表達(dá)式2.58判斷對錯(cuò):0o12f是合法的八進(jìn)制數(shù)字。2.59 判斷對錯(cuò):只有 Python 擴(kuò)展庫才需要導(dǎo)入以后才能使用其中的對象, Python 標(biāo)準(zhǔn)庫不需要導(dǎo)入即可使用其中的所有對象。2.60 判斷對錯(cuò):在 Python 中 0xad 是合法的十六進(jìn)制數(shù)字表示形式。2.61判斷對錯(cuò):4j
15、 是合法Python 數(shù)字類型。2.62判斷對錯(cuò):Python使用縮進(jìn)來體現(xiàn)代碼之間的邏輯關(guān)系,對縮進(jìn)的要求非常嚴(yán)格2.63判斷對錯(cuò):Python代碼的注釋只有一種方式,那就是使用#符號。2.64判斷對錯(cuò):放在一對三引號之間的任何內(nèi)容將被認(rèn)為是注釋。2.65判斷對錯(cuò):盡管可以使用import 語句一次導(dǎo)入任意多個(gè)標(biāo)準(zhǔn)庫或擴(kuò)展庫,但是仍建議每次只導(dǎo)入一個(gè)標(biāo)準(zhǔn)庫或擴(kuò)展庫。2.66 判斷對錯(cuò):為了讓代碼更加緊湊,編寫 Python 程序時(shí)應(yīng)盡 量避免加入空格和空行2.67 判斷對錯(cuò):在Python 3.5 中運(yùn)算符 + 不僅可以實(shí)現(xiàn)數(shù)值的相加、字符串連接, 還可以實(shí)現(xiàn)列表、元組的連接和集合的并集運(yùn)算
16、。2.68 判斷對錯(cuò):在Python 中可以使用for 作為變量名2.69 判斷對錯(cuò):在Python 中可以使用id 作為變量名,但是不建議這樣做。2.70 判斷對錯(cuò):一個(gè)數(shù)字5 也是合法的 Python 表達(dá)式2.71 判斷對錯(cuò):執(zhí)行語句from math importsin 之后,可以直接使用 sin() 函數(shù),例如 sin(3)2.72 判斷對錯(cuò):一般來說, Python 擴(kuò)展庫沒有通用于所有版本Python 的,安裝時(shí)應(yīng)選擇與已安裝 Python 的版本對應(yīng)的擴(kuò)展庫。2.73 判斷對錯(cuò): Python 變量名區(qū)分大小寫,所以 student 和 Student 不是同一個(gè)變量。2.74 判斷對錯(cuò):在 Python 3.x 中 reduce() 是內(nèi)置函數(shù)。2.75 判斷對錯(cuò):如果只需要 math 模塊中的 sin() 函數(shù),建議使用from math import sin來導(dǎo)入,而不要使用import math 導(dǎo)入整個(gè)模塊。2.76 判斷對錯(cuò):表達(dá)式 pow(3, 2) = 3 * 2 的值為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題開題報(bào)告:地方本科院校應(yīng)用型學(xué)科建設(shè)的理論與實(shí)踐研究
- 課題開題報(bào)告:促進(jìn)學(xué)生“數(shù)學(xué)活動(dòng)經(jīng)驗(yàn)”積累的實(shí)踐研究
- 課題開題報(bào)告:初中生感知教師支持與英語學(xué)習(xí)投入的關(guān)系研究
- 課題開題報(bào)告:產(chǎn)教融合基地標(biāo)準(zhǔn)研究智能車路協(xié)同虛擬仿真實(shí)訓(xùn)基地建設(shè)與評估
- 腦溢血的護(hù)理診斷
- 油畫作品企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報(bào)告
- 辦公室用木質(zhì)家具企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 基因表達(dá)量分析系統(tǒng)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 活頁本企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報(bào)告
- 鈉礦企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 跨境電商推廣(EDM、SEO、SEM、Facebook、YouTube、Twitter等)課件
- 京劇文化國粹word小報(bào)手抄報(bào)
- 階段1 古代中華文明的起源與奠基-先秦 課時(shí)1 先秦時(shí)期的社會經(jīng)濟(jì) 課件-2022屆高三歷史一輪復(fù)習(xí)
- 電焊工安全教育培訓(xùn)課件
- DB13T 5576-2022 公路上跨鐵路橋梁水平轉(zhuǎn)體施工技術(shù)規(guī)程
- 2022年公司接待流程及標(biāo)準(zhǔn)管理細(xì)則
- 工程施工聯(lián)系單范文全部
- FMEA第五版表格(實(shí)例)
- 【講座】情境性試題:基于《中國高考評價(jià)體系》的高考語文命題研究
- 環(huán)??己嗽嚲?8285(含答案)
- SMED培訓(xùn)材料-快速換模
評論
0/150
提交評論