版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2025年python考方法類期末考試題及答案一、單項(xiàng)選擇題(每題2分,共20分)1.關(guān)于Python類的繼承,以下說法正確的是()A.子類無法重寫父類的私有方法(以雙下劃線開頭)B.多繼承時(shí),子類方法查找順序遵循深度優(yōu)先原則(Python3中)C.子類實(shí)例化時(shí),若未顯式調(diào)用父類構(gòu)造方法,父類構(gòu)造方法不會(huì)執(zhí)行D.類屬性被所有實(shí)例共享,實(shí)例屬性僅屬于單個(gè)實(shí)例2.以下代碼執(zhí)行后輸出結(jié)果是()```pythondefdecorator(func):defwrapper(args,kwargs):print("Before")res=func(args,kwargs)print("After")returnresreturnwrapper@decoratordeftest(x):returnx2print(test(3))```A.BeforeAfter6B.Before6AfterC.BeforeAfter6D.Before6After3.提供器表達(dá)式與列表推導(dǎo)式的主要區(qū)別是()A.提供器表達(dá)式使用[],列表推導(dǎo)式使用()B.提供器表達(dá)式一次性提供所有元素,列表推導(dǎo)式逐個(gè)提供C.提供器表達(dá)式更節(jié)省內(nèi)存,列表推導(dǎo)式立即占用所有內(nèi)存D.提供器表達(dá)式無法迭代,列表推導(dǎo)式可以多次迭代4.以下異常處理代碼中,當(dāng)輸入為"abc"時(shí),輸出結(jié)果是()```pythontry:num=int(input("請輸入數(shù)字:"))print(num2)exceptValueError:print("輸入非數(shù)字")exceptException:print("其他錯(cuò)誤")finally:print("結(jié)束")```A.輸入非數(shù)字結(jié)束B.輸入非數(shù)字C.其他錯(cuò)誤結(jié)束D.結(jié)束5.關(guān)于字典的特性,以下描述錯(cuò)誤的是()A.字典的鍵必須是不可變類型(如字符串、數(shù)字、元組)B.字典的鍵可以重復(fù),值會(huì)被最后一次賦值覆蓋C.字典是無序的(Python3.7+中默認(rèn)保持插入順序)D.字典的get方法可以設(shè)置默認(rèn)值,避免KeyError6.執(zhí)行以下代碼后,d的值是()```pythond={k:vfork,vinzip(["a","b"],[1,2])ifv%2==0}```A.{'a':1,'b':2}B.{'b':2}C.{'a':1}D.{}7.自定義上下文管理器需要實(shí)現(xiàn)的方法是()A.__enter__和__exit__B.__init__和__del__C.__iter__和__next__D.__get__和__set__8.在多繼承中,super()函數(shù)的作用是()A.調(diào)用父類的構(gòu)造方法B.按照MRO順序調(diào)用下一個(gè)類的方法C.僅調(diào)用第一個(gè)父類的方法D.覆蓋子類的同名方法9.以下函數(shù)定義中,參數(shù)類型錯(cuò)誤的是()A.deffunc(a:int,b:str)->float:...B.deffunc(args:list,kwargs:dict):...C.deffunc(a,b=10):...D.deffunc(a:int,/,b:int):...10.正則表達(dá)式r'\d{3}-\d{4}-\d{4}'可以匹配以下哪個(gè)字符串?()A.123-4567-890B.12-3456-7890C.1234-567-8900D.123-4567-8900二、填空題(每空2分,共20分)1.定義類方法時(shí),需要使用裝飾器______,其第一個(gè)參數(shù)通常命名為______。2.裝飾器的本質(zhì)是一個(gè)______,它接收被裝飾的函數(shù)作為參數(shù),并返回一個(gè)新的函數(shù)。3.提供器函數(shù)通過______關(guān)鍵字返回值,提供器表達(dá)式使用______符號(hào)。4.with語句在執(zhí)行結(jié)束后會(huì)自動(dòng)調(diào)用上下文管理器的______方法,用于資源釋放。5.自定義異常類時(shí),通常需要繼承自______類(或其子類)。6.字典的______方法可以返回一個(gè)視圖對象,包含所有鍵值對的元組形式。7.列表推導(dǎo)式的語法結(jié)構(gòu)為[表達(dá)式for變量in可迭代對象if條件],其中“if條件”用于______。三、簡答題(每題8分,共40分)1.簡述面向?qū)ο缶幊讨小胺庋b、繼承、多態(tài)”的具體實(shí)現(xiàn)方式及意義。2.裝飾器的核心作用是什么?請列舉至少3個(gè)實(shí)際應(yīng)用場景。3.提供器在處理大文件時(shí)為何更具優(yōu)勢?對比列表存儲(chǔ)大文件數(shù)據(jù),說明其內(nèi)存管理機(jī)制的差異。4.解釋with語句的工作原理,并說明如何自定義一個(gè)上下文管理器來操作文件(需給出關(guān)鍵代碼示例)。5.當(dāng)需要處理特定業(yè)務(wù)錯(cuò)誤(如用戶年齡為負(fù)數(shù))時(shí),為何建議自定義異常類?請描述實(shí)現(xiàn)步驟。四、編程題(每題10分,共20分)1.設(shè)計(jì)一個(gè)學(xué)生管理系統(tǒng)類`StudentManager`,要求具備以下功能:添加學(xué)生:接收學(xué)生姓名、學(xué)號(hào)(唯一)、課程及對應(yīng)成績(如{"數(shù)學(xué)":90,"英語":85})。刪除學(xué)生:根據(jù)學(xué)號(hào)刪除指定學(xué)生。修改成績:根據(jù)學(xué)號(hào)、課程名修改該學(xué)生的成績。查詢學(xué)生:根據(jù)學(xué)號(hào)返回學(xué)生的完整信息(姓名、學(xué)號(hào)、所有課程成績)。統(tǒng)計(jì)平均分:接收課程名,返回班級(jí)所有學(xué)生該課程的平均分(保留2位小數(shù))。(要求:使用字典存儲(chǔ)學(xué)生數(shù)據(jù),學(xué)號(hào)作為鍵;需處理學(xué)號(hào)重復(fù)添加、學(xué)號(hào)不存在時(shí)的錯(cuò)誤提示。)2.實(shí)現(xiàn)一個(gè)裝飾器`log_decorator`,要求:記錄被裝飾函數(shù)的執(zhí)行時(shí)間(精確到毫秒)。記錄函數(shù)的輸入?yún)?shù)(包括位置參數(shù)和關(guān)鍵字參數(shù))。記錄函數(shù)的返回值。將以上信息以固定格式(如“[2025-06-1510:30:00]函數(shù)test執(zhí)行時(shí)間:123ms,參數(shù):(3,),{'a':5},返回值:8”)寫入日志文件`function_log.log`,每次運(yùn)行追加寫入。答案--一、單項(xiàng)選擇題1.D2.C3.C4.A5.B6.B7.A8.B9.B10.D二、填空題1.@classmethod;cls2.可調(diào)用對象(或函數(shù))3.yield;()4.__exit__5.Exception6.items()7.過濾元素三、簡答題1.封裝:通過類的私有屬性(如__name)和公有方法(如get_name())限制外部直接訪問,保護(hù)數(shù)據(jù)安全;繼承:子類通過classSubClass(ParentClass)繼承父類屬性和方法,避免重復(fù)代碼;多態(tài):子類重寫父類方法(如不同子類的run()方法),通過父類引用調(diào)用子類方法實(shí)現(xiàn)不同行為。意義:提高代碼復(fù)用性、可維護(hù)性和擴(kuò)展性。2.核心作用:在不修改原函數(shù)代碼的前提下,為函數(shù)添加額外功能(如日志、計(jì)時(shí)、權(quán)限驗(yàn)證)。應(yīng)用場景:接口請求耗時(shí)統(tǒng)計(jì)、用戶登錄狀態(tài)校驗(yàn)、函數(shù)調(diào)用日志記錄、緩存裝飾器(如lru_cache)、參數(shù)校驗(yàn)。3.提供器通過yield逐個(gè)提供元素,僅在需要時(shí)計(jì)算下一個(gè)值,內(nèi)存中始終只保留當(dāng)前元素;列表推導(dǎo)式會(huì)一次性提供所有元素并存儲(chǔ)在內(nèi)存中。處理大文件時(shí)(如10GB日志),提供器逐行讀?。╢orlineinf:...),內(nèi)存占用恒定;列表存儲(chǔ)需一次性加載所有行,可能導(dǎo)致內(nèi)存溢出。4.with語句通過上下文管理器協(xié)議工作:先調(diào)用__enter__方法(返回資源對象),執(zhí)行代碼塊后調(diào)用__exit__方法(處理異常、釋放資源)。自定義上下文管理器示例:```pythonclassFileManager:def__init__(self,filename,mode):self.filename=filenameself.mode=modedef__enter__(self):self.file=open(self.filename,self.mode)returnself.filedef__exit__(self,exc_type,exc_val,exc_tb):self.file.close()```5.自定義異??擅鞔_錯(cuò)誤類型,便于針對性捕獲和處理(如exceptAgeError:...),提高代碼可讀性;默認(rèn)異常(如ValueError)語義模糊,無法直接反映業(yè)務(wù)問題。實(shí)現(xiàn)步驟:定義類繼承自Exception(如classAgeError(Exception):pass);在業(yè)務(wù)邏輯中觸發(fā)(ifage<0:raiseAgeError("年齡不能為負(fù)"));調(diào)用時(shí)用try-except捕獲。四、編程題1.參考代碼:```pythonclassStudentManager:def__init__(self):self.students={}學(xué)號(hào):{姓名,課程成績}defadd_student(self,name,student_id,scores):ifstudent_idinself.students:print(f"錯(cuò)誤:學(xué)號(hào){student_id}已存在")returnFalseself.students[student_id]={"姓名":name,"成績":scores.copy()}returnTruedefdelete_student(self,student_id):ifstudent_idnotinself.students:print(f"錯(cuò)誤:學(xué)號(hào){student_id}不存在")returnFalsedelself.students[student_id]returnTruedefupdate_score(self,student_id,course,new_score):ifstudent_idnotinself.students:print(f"錯(cuò)誤:學(xué)號(hào){student_id}不存在")returnFalseifcoursenotinself.students[student_id]["成績"]:print(f"錯(cuò)誤:學(xué)生{student_id}未選修{course}")returnFalseself.students[student_id]["成績"][course]=new_scorereturnTruedefquery_student(self,student_id):returnself.students.get(student_id,"錯(cuò)誤:學(xué)號(hào)不存在")defcalculate_avg(self,course):total=0count=0forinfoinself.students.values():ifcourseininfo["成績"]:total+=info["成績"][course]count+=1ifcount==0:return"無該課程成績記錄"returnround(total/count,2)```2.參考代碼:```pythonimporttimefromdatetimeimportdatetimedeflog_decorator(func):defwrapper(args,kwargs):start_time=time.perf_counter()result=func(args,kwargs)end_time=time.perf_counter()duration=round((end_timestart_time)1000,2)轉(zhuǎn)換為毫秒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信號(hào)設(shè)備組調(diào)工崗前理論能力考核試卷含答案
- 加油站操作員崗前崗中技能考核試卷含答案
- 列車長崗前工作改進(jìn)考核試卷含答案
- 飼草種子繁育工安全生產(chǎn)知識(shí)考核試卷含答案
- 2026秋招:絲綢之路信息港股份公司筆試題及答案
- 經(jīng)濟(jì)昆蟲產(chǎn)品加工工操作管理評(píng)優(yōu)考核試卷含答案
- 煤層氣修井工班組協(xié)作水平考核試卷含答案
- 鈦汞合金冶煉工成果模擬考核試卷含答案
- 退煮漂操作工操作技能知識(shí)考核試卷含答案
- 玻纖及制品檢驗(yàn)工安全宣傳強(qiáng)化考核試卷含答案
- 2025役前訓(xùn)練考試題庫及答案
- 中醫(yī)診所的規(guī)章制度范本
- 水下機(jī)器人的作業(yè)精度控制
- 三上語文【25秋1-26課必背知識(shí)晨讀單】
- 安全風(fēng)險(xiǎn)分級(jí)管控及隱患排查治理制度安全風(fēng)險(xiǎn)分級(jí)管控制度和隱患排查治理管理制度
- T-CAPC 018-2025 糖尿病、高血壓與血脂異?;颊呷〕坦补芤?guī)范
- 2025年三級(jí)教育安全考試試題及答案
- GB/T 38235-2025工程用鋼絲環(huán)形網(wǎng)
- 西醫(yī)基礎(chǔ)知識(shí)培訓(xùn)課件
- 《電磁發(fā)射滅火炮技術(shù)規(guī)范》
- 風(fēng)機(jī)攀爬安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論