



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、I.Python是如何進行內存管理的? 答:從三個方面來說,一對象的引用計數機制,二垃圾回收機制,三內存池機制 一、 對象的引用計數機制 Python內部使用引用計數,來保持追蹤內存中的對象,所有對象都有引用計數。 引用計數增加的情況: 1, 一個對象分配一個新名稱 2, 將其放入一個容器中(如列表、元組或字典) 引用計數減少的情況: 1, 使用del語句對對象別名顯示的銷毀 2, 引用超出作用域或被重新賦值 sys.getrefcount()函數可以獲得對象的當前引用計數 多數情況下,引用計數比你猜測得要大得多。對于不可變數據(如數字和字符串),解釋器 會在程序的不同部分共享內存,以便節約
2、內存。 二、 垃圾回收 1,當一個對象的引用計數歸零時,它將被垃圾收集機制處理掉。 2,當兩個對象a和b相互引用時,del語句可以減少a和b的引用計數,并銷毀用于引用底 層對象的名稱。然而由于每個對象都包含一個 對其他對象的應用,因此引用計數不會歸零,對象也不會銷毀。 (從而導致內存泄露)。為 解決這一問題,解釋器會定期執行一個循 環檢測器,搜索不可訪問對象的循環并刪除它們。 三、 內存池機制 Python提供了對內存的垃圾收集機制,但是它將不用的內存放到內存池而不是返回給操作 系統。 1, Pymalloc機制。為了加速 Python的執行效率,Python弓I入了一個內存池機制,用于管理
3、對小塊內存的申請和釋放。 2, Python中所有小于256個字節的對象都使用 pymalloc實現的分配器,而大的對象則使用 系統的malloco 3, 對于Python對象,如整數,浮點數和 List,都有其獨立的私有內存池,對象間不共享他 們的內存池。也就是說如果你分配又釋放 了大量的整數,用于緩存這些整數的內存就不能再分配給浮點數。 2.什么是lambda函數?它有什么好處 ? 答:lambda表達式,通常是在需要一個函數,但是又不想費神去命名一個函數的場合下使 用,也就是指匿名函數 lambda函數:首要用途是指點短小的回調函數 lambda arguments:expression
4、 a=lambdax,y:x+y a(3,11) 3. Python里面如何實現 tuple和list的轉換? 答:直接使用tuple和list函數就行了, type()可以判斷對象的類型 4. 請寫出一段Python代碼實現刪除一個list里面的重復元素 答: 1, 使用 set 函數,set(list) 2, 使用字典函數, a=1,2,4,2,4,5,6,5,7,8,9,0 b= b=b.fromkeys(a) c=list(b.keys() c 5. 編程用sort進行排序,然后從最后一個元素開始判斷 a=1,2,4,2,4,5,7,10,5,5,7,8,9,0,3 a.sort()
5、last=a-1 for i inrange(len(a) -2,-1,-1): if last=ai: del ai else:last=ai print(a) 6. Python里面如何拷貝一個對象?(賦值,淺拷貝,深拷貝的區別) 答:賦值(=),就是創建了對象的一個新的引用,修改其中任意一個變量都會影響到另一 個。 淺拷貝:創建一個新的對象,但它包含的是對原始對象中包含項的引用 (如果用引用的方式 修改其中一個對象,另外一個也會修改改 變)1,完全切片方法;2,工廠函數,如list(); 3, copy模塊的copy()函數 深拷貝:創建一個新的對象,并且遞歸的復制它所包含的對象 (修改
6、其中一個,另外一個不 會改變)copy模塊的deep.deepcopy()函 7.介紹一下except的用法和作用? 答:try -exceptexceptelse finally - 執行try下的語句,如果引發異常,則執行過程會跳到 except語句。對每個except分支順序 嘗試執行,如果引發的異常與 except中的 異常組匹配,執行相應的語句。如果所有的 except都不匹配,則異常會傳遞到下一個調用 本代碼的最高層try代碼中。 try下的語句正常執行,則執行 else塊代碼。如果發生異常,就不會執行 如果存在finally語句,最后總是會執行。 8. Python中pass語句
7、的作用是什么? 答:pass語句不會執行任何操作,一般作為占位符或者創建占位程序, whileFalse:pass 9. 介紹一下 Python下range()函數的用法? 答:列出一組數據,經常用在 for in range()循環中 10. 如何用Python來進行查詢和替換一個文本字符串? 答:可以使用re模塊中的sub()函數或者subn()函數來進行查詢和替換, 格式:sub(replacement, string,count=0) (replacement 是被替換成的文本, string 是需要被 替換的文本,count是一個可選參數 ,指最大被替換的數量) import re
8、p=pile( blue|white|red ) print(p.sub( colour ,blue socks and red shoes) colour socks and colourshoes print(p.sub( colour ,blue socks and red shoes ,count=1) colour socks and redshoes subn()方法執行的效果跟 sub()一樣,不過它會返回一個二維數組,包括替換后的新的字符串 和總共替換的數量 11. Python 里面 match()和 search()的區別? 答:re 模塊中 match(pattern,s
9、tring,flags),檢查 string 的開頭是否與 pattern 匹配。 re 模塊中 research(pattern,string,flags),在 string 搜索 pattern 的第一個匹配值。 print(re.match( super, superstition ).span() (0, 5) print(re.match( super, insuperable ) None print(re.search( super, superstition ).span() (0, 5) print(re.search( super, insuperable ).span()
10、 (2, 7) 12. 用Python匹配HTML tag的時候,和有什么區另U? 答:術語叫貪婪匹配( )和非貪婪匹配( ) 例如: test : test : 13. Python里面如何生成隨機數? 答:random模塊 隨機整數:random.randint(a,b):返回隨機整數 x,a=x=b random.randrange(start,stop,step):返回一個范圍在 (start,stop,step)之間的隨機整數,不包 括結束值。 隨機實數:random.random():返回0到1之間的浮點數 random.uniform(a,b):返回指定范圍內的浮點數。 14. 有沒有一個工具可以幫助查找 python的bug和進行靜態的代碼分析? 答:PyChecker是一個python代碼的靜態分析工具, 它可以幫助查找 python代碼的bug,會 對代碼的復雜度和格式提出警告 Pylint是另外一個工具可以進行 codingstandard檢查 15. 如何在一個function里面設置一個全局的變量? 答:解決方法是在 function的開始插入一個 global聲明: def f() global x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 急救小知識:如何正確撥打120動漫演示
- 宮外孕急診急救案例分享
- 幾百幾十數乘以一位數水平測試例題
- 幼兒流鼻血衛生保健指南
- 重慶房屋抵押合同
- 工程成本管理咨詢合同
- 2025至2030中國葡萄汁飲料行業發展趨勢分析與未來投資戰略咨詢研究報告
- 車輛維修保密協議
- 家電清潔服務合同
- 2025至2030中國即時口腔液測試設備行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025年湖南省常德市初中學校教學教研共同體中考二模道德與法治試卷(含答案)
- 衢州2025年浙江衢州市柯城區屬事業單位招聘30人筆試歷年參考題庫附帶答案詳解
- 2024-2025學年滬教版(五四學制)(2024)初中英語六年級下冊(全冊)知識點歸納
- DB32T 5082-2025建筑工程消防施工質量驗收標準
- 2017年遼寧省鞍山市中考化學試卷(解析)
- 山東省青島市萊西市2025年三年級數學第二學期期末復習檢測試題含解析
- 電氣工程及其自動化畢業設計 基于PLC的機械手控制系統設計
- 江蘇省蘇州市2025年中考歷史考前押題卷(含答案)
- 宜興市入湖河道綜合整治工程報告書
- 學校“1530”安全教育記錄表(2024年秋季全學期)
- 管道清淤工程施工方案范本
評論
0/150
提交評論