python筆記題帶答案_第1頁(yè)
python筆記題帶答案_第2頁(yè)
python筆記題帶答案_第3頁(yè)
python筆記題帶答案_第4頁(yè)
python筆記題帶答案_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python是如何進(jìn)行內(nèi)存管理的?答:從三個(gè)方面來(lái)說(shuō),一對(duì)象的引用計(jì)數(shù)機(jī)制,二垃圾回收機(jī)制,三內(nèi)存池機(jī)制一、對(duì)象的引用計(jì)數(shù)機(jī)制Python內(nèi)部使用引用計(jì)數(shù),來(lái)保持追蹤內(nèi)存中的對(duì)象, 所有對(duì)象都有引用計(jì)數(shù)。引用計(jì)數(shù)增加的情況:一個(gè)對(duì)象分配一個(gè)新名稱(chēng)將其放入一個(gè)容器中(如列表、元組或字典)引用計(jì)數(shù)減少的情況:使用del語(yǔ)句對(duì)對(duì)象別名顯示的銷(xiāo)毀引用超出作用域或被重新賦值sys.getrefcount( )函數(shù)可以獲得對(duì)象的當(dāng)前引用計(jì)數(shù)多數(shù)情況下,引用計(jì)數(shù)比你猜測(cè)得要大得多。 對(duì)于不可變數(shù)據(jù)(如數(shù)字和字符串),解釋器會(huì)在程序的不同部分共享內(nèi)存,以便節(jié)約內(nèi)存。二、 垃圾回收當(dāng)一個(gè)對(duì)象的引用計(jì)數(shù)歸零時(shí),它將被垃圾收集機(jī)制處理掉。當(dāng)兩個(gè)對(duì)象a和b相互引用時(shí),del語(yǔ)句可以減少a和b的引用計(jì)數(shù),并銷(xiāo)毀用于引用底層對(duì)象的名稱(chēng)。然而由于每個(gè)對(duì)象都包含一個(gè)對(duì)其他對(duì)象的應(yīng)用,因此引用計(jì)數(shù)不會(huì)歸零,對(duì)象也不會(huì)銷(xiāo)毀。 (從而導(dǎo)致內(nèi)存泄露)。為解決這一問(wèn)題,解釋器會(huì)定期執(zhí)行一個(gè)循環(huán)檢測(cè)器, 搜索不可訪(fǎng)問(wèn)對(duì)象的循環(huán)并刪除它們。三、 內(nèi)存池機(jī)制Python提供了對(duì)內(nèi)存的垃圾收集機(jī)制,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操作系統(tǒng)。1,Pymalloc機(jī)制。為了加速Python的執(zhí)行效率,Python引入了一個(gè)內(nèi)存池機(jī)制,用于管理對(duì)小塊內(nèi)存的申請(qǐng)和釋放。

2,Python中所有小于256個(gè)字節(jié)的對(duì)象都使用 pymalloc實(shí)現(xiàn)的分配器,而大的對(duì)象則使2,Python中所有小于256個(gè)字節(jié)的對(duì)象都使用 pymalloc實(shí)現(xiàn)的分配器,而大的對(duì)象則使用系統(tǒng)的malloc3,對(duì)于Python他們的內(nèi)存池。對(duì)象,如整數(shù),浮點(diǎn)數(shù)和 List ,都有其獨(dú)立的私有內(nèi)存池,對(duì)象間不共享也就是說(shuō)如果你分配又釋放了大量的整數(shù),用于緩存這些整數(shù)的內(nèi)存就不能再分配給浮點(diǎn)數(shù)。2.什么是lambda函數(shù)?它有什么好處?答:lambda表達(dá)式,通常是在需要一個(gè)函數(shù),但是又不想費(fèi)神去命名一個(gè)函數(shù)的場(chǎng)合下使用,也就是指匿名函數(shù)lambda函數(shù):首要用途是指點(diǎn)短小的回調(diào)函數(shù)lambda[arguments]:expressiona=lambdax,y:x+ya(3,11)Python里面如何實(shí)現(xiàn)tuple和list的轉(zhuǎn)換?答:直接使用tuple和list 函數(shù)就行了, type()可以判斷對(duì)象的類(lèi)型4.請(qǐng)寫(xiě)出一段4.請(qǐng)寫(xiě)出一段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())編程用sort進(jìn)行排序,然后從最后一個(gè)元素開(kāi)始判斷a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]a.sort()last=a[-1]foriinrange(len(a)-2,-1,-1):iflast==a[i]:dela[i]else:last=a[i]print(a)Python里面如何拷貝一個(gè)對(duì)象?(賦值,淺拷貝,深拷貝的區(qū)別)答:賦值(=),就是創(chuàng)建了對(duì)象的一個(gè)新的引用,修改其中任意一個(gè)變量都會(huì)影響到另一個(gè)。淺拷貝:創(chuàng)建一個(gè)新的對(duì)象, 但它包含的是對(duì)原始對(duì)象中包含項(xiàng)的引用 (如果用引用的方式修改其中一個(gè)對(duì)象,另外一個(gè)也會(huì)修改改變) {1,完全切片方法;2,工廠(chǎng)函數(shù),如list();3,copy模塊的copy()函數(shù)}深拷貝:創(chuàng)建一個(gè)新的對(duì)象,并且遞歸的復(fù)制它所包含的對(duì)象(修改其中一個(gè),另外一個(gè)不會(huì)改變){copy模塊的deep.deepcopy()函數(shù)}介紹一下except的用法和作用?答:try?except?except?[else?][finally ?]執(zhí)行try下的語(yǔ)句,如果引發(fā)異常,則執(zhí)行過(guò)程會(huì)跳到 except語(yǔ)句。對(duì)每個(gè)except分支順序嘗試執(zhí)行,如果引發(fā)的異常與 except中的異常組匹配,執(zhí)行相應(yīng)的語(yǔ)句。如果所有的except都不匹配,則異常會(huì)傳遞到下一個(gè)調(diào)用本代碼的最高層 try代碼中。try下的語(yǔ)句正常執(zhí)行,則執(zhí)行 else塊代碼。如果發(fā)生異常,就不會(huì)執(zhí)行如果存在finally 語(yǔ)句,最后總是會(huì)執(zhí)行。Python中pass語(yǔ)句的作用是什么?答:pass語(yǔ)句不會(huì)執(zhí)行任何操作,一般作為占位符或者創(chuàng)建占位程序, whileFalse:pass介紹一下Python下range()函數(shù)的用法?

答:列出一組數(shù)據(jù),經(jīng)常用在 forinrange()循環(huán)中如何用Python來(lái)進(jìn)行查詢(xún)和替換一個(gè)文本字符串?答:可以使用re模塊中的sub()函數(shù)或者subn()函數(shù)來(lái)進(jìn)行查詢(xún)和替換,格式:sub(replacement,string[,count=0]) (replacement 是被替換成的文本, string是需要被替換的文本, count是一個(gè)可選參數(shù),指最大被替換的數(shù)量)importrep=pil‘blue|white ')e( |redprint(p.s ‘colo',socks'blueandredshoes'))ub( urcoloursocksandcolourshoesprint(p.sub(‘colour',socks'blueandredshoes',count=1))coloursocksandredshoessubn()方法執(zhí)行的效果跟sub() 一樣,不過(guò)它會(huì)返回一個(gè)二維數(shù)組,包括替換后的新的字符串和總共替換的數(shù)量Python里面match()和search() 的區(qū)別?答:模塊中match(pattern,string[,flags]檢杳strin 的開(kāi)頭是否與patternre),g配。re模塊中research(pattern,string[,flags在搜索pattern 的第一個(gè)匹配值。]),string匹print(re.mat ‘super‘'supers').spanTOC\o"1-5"\h\zch( tition, ())(0, 5)print(re.mat ( ‘super '‘,insupch erable ' ))Noneprint(re.seasuper‘supers').spanrch(tition', ())(0, 5)(0, 5)print(re.search(‘super‘insupe').span(rable', ))(2, 7)用Python匹配HTMLtag的時(shí)候,<.>和<.?>有什么區(qū)別?答:術(shù)語(yǔ)叫貪婪匹配(<?>)和非貪婪匹配(v.?>)例如:testtest<.*?>:13.Python里面如何生成隨機(jī)數(shù)?答:random模塊隨機(jī)整數(shù):random.randint(a,b):返回隨機(jī)整數(shù)x,a<=x<=b:返回一個(gè)范圍在(:返回一個(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.有沒(méi)有一個(gè)工具可以幫助查找python的bug和進(jìn)行靜態(tài)的代碼分析?代碼的靜態(tài)分析工具,它可以幫助查找 代碼的靜態(tài)分析工具,它可以幫助查找 python代碼的bug,答:PyChecker是一個(gè)python會(huì)對(duì)代碼的復(fù)雜度和格式提出警告Pylint 是另外一個(gè)工具可以進(jìn)行codingstandard檢查15.如何在一個(gè)function 里面設(shè)置一個(gè)全局的變量?聲明:答:解決方法是在 function 的開(kāi)始插入一個(gè) globaldeff()globalx16.單引號(hào),雙引號(hào),三引號(hào)的區(qū)別聲明:答:?jiǎn)我?hào)和雙引號(hào)是等效的,以包含注釋如果要換行,需要符號(hào)(),三引號(hào)則可以直接換行,并且可如果要表示Let'sgo這個(gè)字符串單引號(hào):s4= ‘Let'sgo'雙弓I號(hào):s5= “Let'gos”s6= ‘realyllike “python”!'這就是單引號(hào)和雙引號(hào)都可以表示字符串的原因了判斷對(duì)錯(cuò):已知 x=3,那么賦值語(yǔ)句 x='abcedfg' 是無(wú)法正常執(zhí)行的。判斷對(duì)錯(cuò):Python 變量使用前必須先聲明, 并且一旦聲明就不能在當(dāng)前作用域內(nèi)改變其類(lèi)型了。判斷對(duì)錯(cuò):Python 不允許使用關(guān)鍵字作為變量名, 但是允許使用內(nèi)置函數(shù)名作為變量名,不過(guò)這會(huì)改變函數(shù)名的含義,所以不建議這樣做。判斷對(duì)錯(cuò):在 Python中可以使用 if作為變量名。判斷對(duì)錯(cuò):在 Python3.x 中可以使用中文作為變量名。判斷對(duì)錯(cuò):Python 變量名必須以字母或下劃線(xiàn)開(kāi)頭, 并且區(qū)分字母大小寫(xiě)。判斷對(duì)錯(cuò): 加法運(yùn)算符可以用來(lái)連接字符串并生成新字符串。判斷對(duì)錯(cuò):x=9999**9999 這樣的語(yǔ)句在 Python 中無(wú)法運(yùn)行,因?yàn)閿?shù)字太大了超出了整型變量的表示范圍。2.57判斷對(duì)錯(cuò):3+4j不是合法的Python表達(dá)式2.58判斷對(duì)錯(cuò):0o12f是合法的八進(jìn)制數(shù)字。

判斷對(duì)錯(cuò):只有 Python 擴(kuò)展庫(kù)才需要導(dǎo)入以后才能使用其中的對(duì)象,Python 標(biāo)準(zhǔn)庫(kù)不需要導(dǎo)入即可使用其中的所有對(duì)象。判斷對(duì)錯(cuò):在Python 中Oxad 是合法的十六進(jìn)制數(shù)字表示形式。2.61判斷對(duì)錯(cuò):4j 是合法Python 數(shù)字類(lèi)型。2.62判斷對(duì)錯(cuò):Python使用縮進(jìn)來(lái)體現(xiàn)代碼之間的邏輯關(guān)系,對(duì)縮進(jìn)的要求非常嚴(yán)格<2.63判斷對(duì)錯(cuò):Python代碼的注釋只有一種方式,那就是使用#符號(hào)。2.64判斷對(duì)錯(cuò):放在一對(duì)二引號(hào)之間的任何內(nèi)容將被認(rèn)為是注釋。2.65判斷對(duì)錯(cuò):盡管可以使用import 語(yǔ)句一次導(dǎo)入任意多個(gè)標(biāo)準(zhǔn)庫(kù)或擴(kuò)展庫(kù),但是仍建議每次只導(dǎo)入一個(gè)標(biāo)準(zhǔn)庫(kù)或擴(kuò)展庫(kù)。2.66判斷對(duì)錯(cuò):為了讓代碼更加緊湊,編寫(xiě) Python 程序時(shí)應(yīng)盡量避免加入空格和空行2.67 判斷對(duì)錯(cuò):在Python3.5 中運(yùn)算符+2.67 判斷對(duì)錯(cuò):在加、字符串連接,還可以實(shí)現(xiàn)列表、元組的連接和集合的并集運(yùn)算。2.68 判斷對(duì)錯(cuò):在Python加、字符串連接,還可以實(shí)現(xiàn)列表、元組的連接和集合的并集運(yùn)算。2.68 判斷對(duì)錯(cuò):在Python中可以使用for作為變量名2.69 判斷對(duì)錯(cuò):在Python 2.69 判斷對(duì)錯(cuò):在Python 中可以使用id作為變量名,但是不建議這樣做。2.70 判斷對(duì)錯(cuò):一個(gè)數(shù)字5也是合法的Python 2.70 判斷對(duì)錯(cuò):一個(gè)數(shù)字5也是合法的Python 表達(dá)式2.71 判斷對(duì)錯(cuò):執(zhí)行語(yǔ)句frommathimportsin之后,可以直接使用sin()函數(shù),例如 sin(3)判斷對(duì)錯(cuò):一般來(lái)說(shuō), Python 擴(kuò)展庫(kù)沒(méi)有通用于所有版本Python 的,安裝時(shí)應(yīng)選擇與已安裝 Python 的版本對(duì)應(yīng)的擴(kuò)展庫(kù)。判斷對(duì)錯(cuò):Python 變量名區(qū)分大小寫(xiě),所以 student 和Student不是同一個(gè)變量。判斷對(duì)錯(cuò):在 Python3.x中reduce。 是內(nèi)置函數(shù)。判斷對(duì)錯(cuò):如果只需要 math模塊中的 sin()函數(shù),建議使用frommathimportsin 來(lái)導(dǎo)入,而不要使用 importmath導(dǎo)入整個(gè)模塊。判斷對(duì)錯(cuò):表達(dá)式 pow(3,2)==3**

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論