


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、python核心編程第二版答案【篇一:python核心編程第二版第4章習(xí)題答案】屬性是什么?請(qǐng)簡單的描述一下。答案:所有的python對(duì)象都擁有三個(gè)特性:身份,類型和值。身份:每一個(gè)對(duì)象都有一個(gè)唯一的身份標(biāo)識(shí)自己,任何對(duì)象的身份可以使用內(nèi)建函數(shù)id()來得到。這個(gè)值可以被認(rèn)為是該對(duì)象的內(nèi)存地址。類型:對(duì)象的類型決定了該對(duì)象可以保存什么類型的值,可以進(jìn)行什么樣的操作,以及遵循什么樣的規(guī)則。可以使用內(nèi)建函數(shù)type()查看對(duì)象的類型。在python中類型也是對(duì)象。值:對(duì)象標(biāo)識(shí)的數(shù)據(jù)項(xiàng)。4-2.類型。不可更改(immutable)指的是什么?python的哪些類型是可更改(mutable)的,哪些不
2、是?答案:不可更改指對(duì)象創(chuàng)建以后值不可以更新。immutable的類型:數(shù)字,字符串,元組mutable的類型:列表,字典4-3.類型。哪些python類型是按照順序訪問的,他們和映射類型的不同是什么?答案:string,tuple,list是按照順序訪問的。字典是映射訪問。字典中的元素,他們的索引并不使用順序的數(shù)字偏移量取值,它的元素?zé)o序存放,通過一個(gè)唯一的鍵來訪問。4-4.type()。內(nèi)建函數(shù)type()作什么?type()返回的對(duì)象是什么?答案:內(nèi)建函數(shù)type()返回任意ptrhon對(duì)象的數(shù)據(jù)類型,而不局限于標(biāo)準(zhǔn)類型。type()返回的值是一個(gè)類型對(duì)象。4-5.str()和repr(
3、)。內(nèi)建函數(shù)str()與repr()之間的不同是什么?哪一個(gè)等價(jià)于反引號(hào)('、)操作符?答案:內(nèi)建函數(shù)str()和repr()或反引號(hào)操作符()可以方便的以字符串的方式獲取對(duì)象的內(nèi)容、類型、數(shù)值屬性等信息。str()函數(shù)得到的字符串可讀性好,而repr()函數(shù)得到的字符串通常可以用來重新獲得該對(duì)象,通常情況下obj=eval(repr(obj)這個(gè)等式是成立的。這兩個(gè)函數(shù)接受一個(gè)對(duì)象作為其參數(shù),返回適當(dāng)?shù)淖址epr()輸出對(duì)python比較友好,而str()的輸出對(duì)用戶比較友好。str()致力于生成一個(gè)對(duì)象的可讀性好的字符串表示,它的返回結(jié)果通常無法用于eval()求值。=rep
4、r(),但反引號(hào)()操作符已經(jīng)不鼓勵(lì)繼續(xù)使用。4-6.對(duì)象相等。你認(rèn)為type(a)=type(b)和type(a)istype(b)之間的不同是什么?為什么會(huì)選者后者?函數(shù)isinstance()與這有什么關(guān)系?答案:網(wǎng)上所得“='比較的是值,is比較的是對(duì)象。因?yàn)槊總€(gè)對(duì)象只可能有一種類型的值,所以可以直接比較他們的id,而不用先計(jì)算值再做比較。函數(shù)isinstance()用來確定這個(gè)對(duì)象是否屬于這個(gè)類型,或者實(shí)例是否屬于某個(gè)類。4-7.內(nèi)建函數(shù)dir()。在第2章的幾個(gè)練習(xí)中,我們用內(nèi)建函數(shù)dir()做了幾個(gè)實(shí)驗(yàn),它接受一個(gè)對(duì)象,然后給出相應(yīng)的屬性。請(qǐng)對(duì)types模塊做相同的實(shí)驗(yàn)。
5、記下你熟悉的類型,包括你對(duì)這些類型的認(rèn)識(shí),然后記下你還不熟悉的類型。在學(xué)習(xí)pythopn的過程中,你要逐步將不熟悉”的類型變得熟悉”起來。答案:略4-8.列表和元組。列表和元組的相同點(diǎn)是什么?不同點(diǎn)是什么?答案:list是處理一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu),即你可以在一個(gè)列表中存儲(chǔ)一個(gè)序列的項(xiàng)目。列表中的項(xiàng)目應(yīng)該包括在中,這樣python就知道你是在指明一個(gè)列表。一旦你創(chuàng)建了一個(gè)列表,你就可以添加,刪除,或者是搜索列表中的項(xiàng)目。由于你可以增加或刪除項(xiàng)目,我們說列表是可變的數(shù)據(jù)類型,即這種類型是可以被改變的。列表是可以嵌套的。元組和列表十分相似,不過元組是不可變的。即你不能修改元組。元組通過()中用逗號(hào)
6、分隔的項(xiàng)目定義。元組通常用在使語句或用戶定義的函數(shù)能夠安全的采用一組值的時(shí)候,即被使用的元組的值不會(huì)改變。元組可以嵌套。4-9.實(shí)踐,給定以下賦值:a=10b=10c=100d=100e=10.0f=10.0請(qǐng)問下面各表達(dá)式的輸出是什么?為什么?(a) aisb(b) cisdeisf答案:(a) true(b) true(c) false【篇二:python核心編程第二版第9章習(xí)題答案】#)開頭的行.這個(gè)字符被用做python,perl,tcl,等大多腳本文件的注釋符號(hào).附加題:處理不是第一個(gè)字符開頭的注釋.答案:f=open(test1.txt,r)foreachlineinf:ifeac
7、hline0=#:continueelif#ineachline:loc=eachline.find(#)printeachline:locelse:printeachline,92文件訪問.提示輸入數(shù)字n和文件f,然后顯示文件f的前n行.答案:n=int(raw_input(enteranumber:)f=raw_input(enterfilename:)f1=open(f,r)allline=f1.readlines()f1.close()foriinrange(n):printalllinei,9劉.文件信息.提示輸入一個(gè)文件名,然后顯示這個(gè)文本文件的總行數(shù).答案:f=raw_input
8、(enterfilename:)f1=open(f,r)sum=0foriinf1:sum+=1f1=open(f,r)sum=0foriinf1:sum+=1printsum方法二:f=raw_input(enterfilename:)fl=open(f,r)allline=f1.readlines()f1.close()printlen(allline)9-4.文件訪問.寫一個(gè)逐頁顯示文本文件的程序.提示輸入一個(gè)文件名,每次顯示文本文件的25行,暫停并向用戶提示按任意鍵繼續(xù).,按鍵后繼續(xù)執(zhí)行.答案:f=raw_input(enterfilename:)f1=open(f,r)allline
9、=f1.readlines()f1.close()sum=0foriinallline:printi,sum+=1ifsum=25:a=raw_input(pressanykeytocontinue:)sum=0方法二importosf=raw_input(plsinputafilename:)n=0f=open(f,r)foriinf:printi,n+=1ifn=25:n=0os.system(pause)f.close()9-5考試成績,改進(jìn)你的考試成績問題(練習(xí)5-3和6-4),要求能從多個(gè)文件中讀入考試成績。文件的數(shù)據(jù)格式由你自己決定。答案:f=open(test1.txt,r)sc
10、ores=foriinf:if0=int(i.strip()=100:scores.append(int(i.strip()else:printscorewrong,pleaseagainifint(i.strip()60:printscoreise,ielifint(i.strip()70:printscoreisd,ielifint(i.strip()80:printscoreisc,ielifint(i.strip()90:printscoreisb,ielse:printscoreisa,if.close()printaveragescoreis%.2f%(sum(scores)/le
11、n(scores)9-6.文件比較.寫一個(gè)比較兩個(gè)文本文件的程序.如果不同,給出第一個(gè)不同處的行號(hào)和列號(hào).答案:fl=raw_input(enterafilename:)f2=raw_input(enterafilename:)fl=open(f1,r)f2=open(f2,r)flallline=f1.readlines()f2allline=f2.readlines()f1.close()f2.close()len1=len(f1allline)len2=len(f2allline)minlen1=min(len1,len2)foriinrange(minlen1):printf1alll
12、inei,f2alllineiiff1alllinei!=f2alllinei:minlen2=min(len(f1alllinei),len(f2alllinei)forjinrange(minlen2):iff1alllineij!=f2alllineij:printrowis%d,columnis%d%(i+1,j+1)breakelse:continueelse:printtheyareequaln97解析文件.Win32用戶:創(chuàng)建一個(gè)用來解析windows.ini文件的程序.posix用戶:創(chuàng)建一個(gè)解析/etc/serves文件的程序.其它平臺(tái)用戶:寫一個(gè)解析特定結(jié)構(gòu)的系統(tǒng)配置文件的
13、程序.答案:這題沒看懂,抄的別人option=f=open(rc:windowswin.ini)forlineinf:ifline.startswith(;):continueifline.startswith():iterm=name=line1:line.rfind()option.setdefault(name,iterm)continueif=inline:optionname.append(line.strip()printoption9書.模塊研究.提取模塊的屬性資料.提示用戶輸入一個(gè)模塊名(或者從命令行接受輸入).然后使用dir()和其它內(nèi)建函數(shù)提取模塊的屬性,顯示它們的名字,類
14、型,值.答案:m=raw_input(enteramodulename:)module=_import_(m)m1=dir(module)printm1foriinm1:printname:,iprinttyoe:,type(getattr(module,i)printvalue:,getattr(module,i)print9-9.python文檔字符串。進(jìn)入python標(biāo)準(zhǔn)庫所在的目錄。檢查每個(gè).py文件看是否有doc_字符串,如果有,對(duì)其格式進(jìn)行適當(dāng)?shù)恼須w類.你的程序執(zhí)行完畢后,應(yīng)該會(huì)生成一個(gè)漂亮的清單.里邊列出哪些模塊有文檔字符串,以及文檔字符串的內(nèi)容.清單最后附上那些沒有文檔字符串
15、模塊的名字.附加題:提取標(biāo)準(zhǔn)庫中各模塊內(nèi)全部類(class)和函數(shù)的文檔.答案:這是入口#coding:utf-8importosimportsysnum=將所有路徑文件名全部提取出來deffun(dirname):foriinos.listdir(dirname):ifos.path.isdir(dirname+i):fun(dirname+i)else:num.append(dirname+i)fun(rc:python27lib)hasdoc=falsestrtemp=fileobj1=open(hasdoc.txt,a+)fileobj2=open(nodoc.txt,a+)forii
16、nnum:printifobj=open(i)foreachlineinfobj:if(nothasdoc)andeachline.startswith():hasdoc=trueelifhasdocandeachline.startswith():hasdoc=falsestrtemp+=eachlinebreakifhasdoc:strtemp+=eachlineelse:breakifstrtemp!=:fileobj1.write(filename:+i+n)fileobj1.write(_doc_+n)fileobj1.write(strtemp+n)else:fileobj2.wr
17、ite(文件名:+i+n)strtemp=fobj.close()fileobj1.close()fileobj2.close()9-10.家庭理財(cái)。創(chuàng)建一個(gè)家庭理財(cái)程序。你的程序需要處理儲(chǔ)蓄、支票、金融市場,定期存款等多種賬戶。為每種賬戶提供一個(gè)菜單操作界面,要有存款、取款、借、貸等操作。另外還要提供一個(gè)取消操作選項(xiàng)。用戶退出這個(gè)程序時(shí)相關(guān)數(shù)據(jù)應(yīng)該保存到文件里取(出于備份的目的,程序執(zhí)行過程中也要備份)。答案:太難了,不會(huì)。9- 11.web站點(diǎn)地址.a)編寫一個(gè)url書簽管理程序.使用基于文本的菜單,用戶可以添加,修改或者刪除書簽數(shù)據(jù)項(xiàng).書簽數(shù)據(jù)項(xiàng)中包含站點(diǎn)的名稱,url地址,以及一行簡單
18、說明(可選).另外提供檢索功能,可以根據(jù)檢索關(guān)鍵字在站點(diǎn)名稱和url兩部分查找可能的匹配.程序退出時(shí)把數(shù)據(jù)保存到一個(gè)磁盤文件中去;再次執(zhí)行時(shí)候加載保存的數(shù)據(jù).b)改進(jìn)a)的解決方案,把書簽輸出到一個(gè)合法且語法正確的html文件(.html或htm)中,這樣用戶就可以使用瀏覽器查看自己的書簽清單.另外提供創(chuàng)建文件夾功能,對(duì)相關(guān)的書簽進(jìn)行分組管理.附加題:請(qǐng)閱讀python的re模塊了解有關(guān)正則表達(dá)式的資料,使用正則表達(dá)式對(duì)用戶輸入的url進(jìn)行驗(yàn)證.答案:不會(huì)做,參考自importre,osdefcheckurl(url):rA(?:http|ftp)?:/#http:/orhttps:/r(?:
19、(?:a-z0-9(?:a-z0-90,61a-z0-9)?.)+(?:a-z2,6.?|a-z0-9-(2,.?)|rlocalhost#localhost【篇三:python核心編程(第二版)第十章習(xí)題答案】注意這里我們問的并不是異常的原因。a)用戶;b)解釋器;c)程序;d)以上所有;e)只有b)和c);f)只有a)和c)o答案:f2.引發(fā)異常。參考上邊問題的列表,哪些因素會(huì)在執(zhí)行交互解釋器時(shí)引發(fā)異常?答案:f10-3.關(guān)鍵字。用來引發(fā)異常的關(guān)鍵字有哪些?答案:raise10-4.關(guān)鍵字。try-except和try-finally有什么不同?答案:try-except:當(dāng)try代碼塊運(yùn)
20、行出錯(cuò),except代碼塊才會(huì)被執(zhí)行(匹配到相應(yīng)異常時(shí)),處理完異常后try-except后的代碼會(huì)繼續(xù)往下執(zhí)行;try-finally:不管try代碼塊是否出現(xiàn)異常,最終都會(huì)執(zhí)行finally里的代碼。如果出現(xiàn)異常,執(zhí)行完finally代碼塊后,異常會(huì)繼續(xù)往上層拋。10-5.異常。下面這些交互解釋器下的python代碼段分別會(huì)引發(fā)什么異常(參閱表10.2給出的內(nèi)建異常清單):(a) if34then:print3islessthan4!alist=hello,world,anyone,home?printthelaststringinalistis:,alistlen(alist)xx=4%
21、0importmathi=math.sqrt(-1)答案:(a) syntaxerror:invalidsyntaxindexerror:listindexoutofrangenameerror:namexisnotdefinedzerodivisionerror:integerdivisionormodulobyzerovalueerror:mathdomainerror10-6.改進(jìn)的open()。為內(nèi)建的open()函數(shù)創(chuàng)建一個(gè)封裝。使得成功打開文件后,返回文件句柄:若打開失敗則返回給調(diào)用者none,而不是生成一個(gè)異常。這樣你打開文件就不需要額外的異常處理語句。答案:deftry_ope
22、n(filename,mode=r):try:f=open(filename,mode)exceptioerror:returnnonereturnfif_name_=_main_:printtry_open(test1.txt)10-7.異常。下面兩端python偽代碼a)和b)有什么區(qū)另U?考慮語句a和b的上下文環(huán)境。(這么細(xì)致的區(qū)別要感謝guido!)(a)try:statement_aelse:statement_b(b)try:statement_astatement_bexcept.:答案:情況1:如果statement_a執(zhí)行出錯(cuò),貝U(a)和(b)都不會(huì)執(zhí)行statement_b;情況2:如果statement_a執(zhí)行正常,貝U(a)和(b)都會(huì)執(zhí)行statement_b但是,如果statement_b的執(zhí)行也出錯(cuò),(b)可以在except子句里捕獲到異常并做處
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 野外生存訓(xùn)練營行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 運(yùn)動(dòng)裝備租賃平臺(tái)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 藝術(shù)治療行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 互聯(lián)網(wǎng)金融擔(dān)保服務(wù)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 會(huì)計(jì)用賬本AI應(yīng)用行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 舞蹈教學(xué)自媒體行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 汽車貸款擔(dān)保服務(wù)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 九年級(jí)中考作文寫作備考計(jì)劃
- 2025年中國標(biāo)本采集刀市場調(diào)查研究報(bào)告
- 初中歷史教學(xué)改革下學(xué)期計(jì)劃
- 石油開發(fā)地質(zhì)學(xué)-第5章-圈閉和油氣藏
- 英語語法-時(shí)間介詞-練習(xí)題(帶答案)
- 2025年不停電電源(UPS)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 激光清洗機(jī)項(xiàng)目可行性研究報(bào)告申請(qǐng)備案
- 2025年山東出版集團(tuán)招聘筆試參考題庫含答案解析
- 2025年濟(jì)南鐵路局招聘筆試參考題庫含答案解析
- 雜交水稻育種技術(shù)
- 第9課《魚我所欲也》作業(yè)設(shè)計(jì)-部編版語文九年級(jí)下冊(cè)
- 創(chuàng)新與創(chuàng)業(yè)思維知到智慧樹章節(jié)測(cè)試課后答案2024年秋河北藝術(shù)職業(yè)學(xué)院
- 無人系統(tǒng)基礎(chǔ)教學(xué)課件第2章-無人系統(tǒng)的自主控制架構(gòu)
- 專業(yè)廣告公司合作合同模板
評(píng)論
0/150
提交評(píng)論