2025年python期末考試題庫及答案_第1頁
2025年python期末考試題庫及答案_第2頁
2025年python期末考試題庫及答案_第3頁
2025年python期末考試題庫及答案_第4頁
2025年python期末考試題庫及答案_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2025年python期末考試題庫及答案一、單項(xiàng)選擇題(每題1分,共10分)1.執(zhí)行以下代碼后,輸出結(jié)果是()。```pythonx=10y=xx=20print(y)```A.10B.20C.10,20D.報(bào)錯(cuò)2.以下關(guān)于Python字符串的描述,錯(cuò)誤的是()。A.字符串是不可變類型B.可以使用`+`拼接多個(gè)字符串C.`f"數(shù)值:{123:.2f}"`會(huì)輸出"數(shù)值:123.00"D.字符串的`split()`方法默認(rèn)按空格分割3.執(zhí)行`a=[1,2,3];b=a;a.append(4);print(b)`,輸出結(jié)果是()。A.[1,2,3]B.[1,2,3,4]C.[4]D.報(bào)錯(cuò)4.以下代碼的輸出是()。```pythondeffunc(a,b=2):returnabprint(func(3,5))```A.3B.5C.6D.155.若`d={'a':1,'b':2}`,執(zhí)行`d.get('c',3)`的結(jié)果是()。A.KeyErrorB.NoneC.3D.{'c':3}6.以下能正確提供1到10(含)偶數(shù)列表的是()。A.`[iforiinrange(1,11)ifi%2==0]`B.`[i2foriinrange(1,6)]`C.`list(range(2,11,2))`D.以上都正確7.關(guān)于異常處理,以下代碼的輸出是()。```pythontry:print(1/0)exceptValueError:print("值錯(cuò)誤")exceptZeroDivisionError:print("除零錯(cuò)誤")```A.值錯(cuò)誤B.除零錯(cuò)誤C.報(bào)錯(cuò)D.無輸出8.以下關(guān)于類的說法,錯(cuò)誤的是()。A.類的實(shí)例方法第一個(gè)參數(shù)必須是`self`B.類屬性可以通過類名或?qū)嵗L問C.子類無法重寫父類的方法D.`__init__`方法是構(gòu)造方法9.執(zhí)行`gen=(i2foriinrange(3));print(list(gen))`的結(jié)果是()。A.[0,1,4]B.(0,1,4)C.提供器對象D.報(bào)錯(cuò)10.導(dǎo)入模塊`math`后,正確計(jì)算π的語句是()。A.`math.pi`B.`math.Pi()`C.`pi()`D.`math.get_pi()`二、填空題(每空2分,共10分)1.若`a=[1,3,5,7,9]`,則`a[1:-1]`的結(jié)果是__________。2.定義一個(gè)字典`d`,鍵為`'name'`值為`'Alice'`,鍵為`'age'`值為20,語句是__________。3.裝飾器的本質(zhì)是一個(gè)__________,用于修改其他函數(shù)的行為。4.提供器函數(shù)與普通函數(shù)的區(qū)別是使用__________關(guān)鍵字返回值。5.正則表達(dá)式`r'\d{3}-\d{4}-\d{4}'`可匹配的典型字符串是__________(舉例)。三、簡答題(每題10分,共40分)1.簡述深拷貝(deepcopy)與淺拷貝(shallowcopy)的區(qū)別,并舉例說明。2.解釋Python中GIL(全局解釋器鎖)的作用,以及它對多線程編程的影響。3.說明迭代器(Iterator)和提供器(Generator)的定義、區(qū)別及典型應(yīng)用場景。4.什么是裝飾器(Decorator)?設(shè)計(jì)一個(gè)裝飾器,用于記錄函數(shù)的執(zhí)行時(shí)間(要求輸出“函數(shù)xxx執(zhí)行耗時(shí):0.001秒”)。四、編程題(每題10分,共50分)1.字符串處理:輸入一個(gè)字符串(如"HelloPython"),統(tǒng)計(jì)每個(gè)字符出現(xiàn)的次數(shù)(區(qū)分大小寫,忽略空格),并按頻率從高到低輸出結(jié)果(格式:字符:次數(shù))。若頻率相同,按字符ASCII碼升序排列。2.數(shù)據(jù)結(jié)構(gòu):定義單鏈表節(jié)點(diǎn)類`Node`(包含`val`和`next`屬性),并實(shí)現(xiàn)非遞歸方法反轉(zhuǎn)單鏈表(輸入頭節(jié)點(diǎn),返回反轉(zhuǎn)后的頭節(jié)點(diǎn))。3.文件操作:有一個(gè)日志文件`log.txt`,每行格式為"2024-01-0112:00:00GET/api200"(時(shí)間方法URL狀態(tài)碼)。要求讀取文件,統(tǒng)計(jì)狀態(tài)碼為200的記錄數(shù)量,并將結(jié)果寫入`success_count.txt`(格式:"成功次數(shù):X")。4.面向?qū)ο螅涸O(shè)計(jì)一個(gè)`Student`類,包含屬性`name`(姓名)、`sid`(學(xué)號(hào))、`scores`(列表,存儲(chǔ)3門課成績)。要求實(shí)現(xiàn):方法`average()`:計(jì)算平均分(保留2位小數(shù));類方法`sort_by_score()`:接收`Student`實(shí)例列表,按平均分從高到低排序,返回排序后的列表。5.數(shù)據(jù)分析:使用`pandas`讀取`sales.csv`(列:date(日期,格式"YYYY-MM-DD")、product(產(chǎn)品)、amount(銷售額)),完成以下操作:篩選出2024年的所有記錄;按產(chǎn)品分組,計(jì)算每個(gè)產(chǎn)品的總銷售額;將結(jié)果保存為`product_sales.csv`(列:product、total_amount)。參考答案一、單項(xiàng)選擇題1-5:ACBDC6-10:DBCAA二、填空題1.[3,5,7]2.`d={'name':'Alice','age':20}`3.可調(diào)用對象(或函數(shù))4.`yield`5."123-4567-8901"(符合3位-4位-4位數(shù)字格式即可)三、簡答題1.深拷貝與淺拷貝:淺拷貝僅復(fù)制對象本身及頂層元素的引用,若原對象包含可變子對象(如列表),拷貝后的對象與原對象共享子對象,修改子對象會(huì)影響雙方。深拷貝會(huì)遞歸復(fù)制所有子對象,提供獨(dú)立的新對象,修改原對象或拷貝對象的子對象互不影響。示例:```pythonimportcopya=[1,[2,3]]b=copy.copy(a)淺拷貝c=copy.deepcopy(a)深拷貝a[1].append(4)print(b)輸出[1,[2,3,4]](共享子列表)print(c)輸出[1,[2,3]](獨(dú)立子列表)```2.GIL的作用與影響:GIL是Python解釋器(如CPython)中的一個(gè)互斥鎖,確保同一時(shí)間只有一個(gè)線程執(zhí)行Python字節(jié)碼。其設(shè)計(jì)初衷是簡化內(nèi)存管理,避免多線程對共享資源的競爭。影響:由于GIL存在,Python多線程在CPU密集型任務(wù)中無法利用多核優(yōu)勢(同一時(shí)間僅一個(gè)線程執(zhí)行),但對I/O密集型任務(wù)(如文件讀寫、網(wǎng)絡(luò)請求)仍有提升(線程等待I/O時(shí)會(huì)釋放GIL)。3.迭代器與提供器:迭代器是實(shí)現(xiàn)了`__iter__()`和`__next__()`方法的對象,可通過`next()`逐個(gè)獲取元素,遍歷結(jié)束后拋出`StopIteration`。提供器是一種特殊的迭代器,通過`yield`關(guān)鍵字定義函數(shù),每次調(diào)用`next()`時(shí)執(zhí)行到`yield`并暫停,保存狀態(tài)。區(qū)別:提供器代碼更簡潔(無需手動(dòng)實(shí)現(xiàn)`__iter__`和`__next__`),內(nèi)存更高效(按需提供元素,不一次性存儲(chǔ)所有數(shù)據(jù))。應(yīng)用場景:迭代器用于遍歷自定義數(shù)據(jù)結(jié)構(gòu);提供器用于處理大數(shù)據(jù)集(如讀取大文件、提供無限序列)。4.裝飾器設(shè)計(jì):裝飾器是用于修改函數(shù)行為的可調(diào)用對象,本質(zhì)是一個(gè)接收函數(shù)并返回新函數(shù)的高階函數(shù)。示例代碼:```pythonimporttimedeftimer(func):defwrapper(args,kwargs):start=time.time()result=func(args,kwargs)end=time.time()print(f"函數(shù){func.__name__}執(zhí)行耗時(shí):{endstart:.3f}秒")returnresultreturnwrapper使用示例@timerdeftest():time.sleep(0.1)test()輸出:函數(shù)test執(zhí)行耗時(shí):0.101秒```四、編程題1.字符串處理```pythons=input("請輸入字符串:")count={}forcharins:ifchar=='':忽略空格continuecount[char]=count.get(char,0)+1按頻率降序、ASCII升序排序sorted_items=sorted(count.items(),key=lambdax:(-x[1],x[0]))forchar,cntinsorted_items:print(f"{char}:{cnt}")```2.單鏈表反轉(zhuǎn)(非遞歸)```pythonclassNode:def__init__(self,val=0,next=None):self.val=valself.next=nextdefreverse_list(head):prev=Nonecurrent=headwhilecurrent:next_node=current.next保存下一個(gè)節(jié)點(diǎn)current.next=prev反轉(zhuǎn)指針prev=current前驅(qū)后移current=next_node當(dāng)前節(jié)點(diǎn)后移returnprev新頭節(jié)點(diǎn)是原尾節(jié)點(diǎn)(prev)```3.文件操作```pythonsuccess_count=0withopen("log.txt","r",encoding="utf-8")asf:forlineinf:parts=line.strip().split()iflen(parts)>=4andparts[3]=="200":success_count+=1withopen("success_count.txt","w",encoding="utf-8")asf:f.write(f"成功次數(shù):{success_count}")```4.Student類設(shè)計(jì)```pythonclassStudent:def__init__(self,name,sid,scores):=nameself.sid=sidself.scores=scoresdefaverage(self):returnround(sum(self.scores)/len(self.scores),2)@classmethoddefsort_by_score(cls,students):

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論