版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2025年P(guān)ython二級考試沖刺試卷:實(shí)戰(zhàn)編程技巧考試時(shí)間:______分鐘總分:______分姓名:______一、選擇題(每題2分,共20分)1.下列哪個不是Python合法的標(biāo)識符?A._myVarB.3hoursC.my-varD.__class__2.在Python中,用于表示不可變序列的數(shù)據(jù)類型是?A.listB.tupleC.setD.dict3.下列關(guān)于Python字典的說法,錯誤的是?A.字典的鍵必須是可哈希的B.字典的值可以是任何數(shù)據(jù)類型C.字典是無序的(在Python3.7+中,插入順序被保留,但官方仍稱其為無序)D.可以使用字典的鍵來刪除字典中對應(yīng)的項(xiàng)4.下列哪個函數(shù)用于將列表中的所有元素轉(zhuǎn)換為字符串,并連接成一個單一的字符串?A.join()B.split()C.map()D.reduce()5.在Python中,以下哪個是定義類的方法的特殊名稱,它不需要參數(shù)?A.__init__B.__str__C.__main__D.__call__6.以下哪個標(biāo)準(zhǔn)庫用于處理日期和時(shí)間?A.osB.sysC.datetimeD.json7.以下哪個標(biāo)準(zhǔn)庫提供了正則表達(dá)式的功能?A.reB.mathC.collectionsD.random8.以下哪個語句是Python中導(dǎo)入模塊的正確語法?A.importmoduleB.include'module'C.requiremoduleD.frommoduleimport*9.以下哪個是Python中用于處理異常的語句?A.if-elseB.try-exceptC.for-loopD.while-loop10.關(guān)于Python代碼風(fēng)格,PEP8推薦函數(shù)和變量名使用哪種命名方式?A.ALL_CAPSB.all_capsC.allcapsD.snake_case二、填空題(每空2分,共20分)1.Python中,用于處理文件的標(biāo)準(zhǔn)庫是_______。2.列表推導(dǎo)式提供了一種簡潔的方式來創(chuàng)建_______。3.在面向?qū)ο缶幊讨校愂莿?chuàng)建對象的_______。4.用來表示“非”邏輯運(yùn)算的Python關(guān)鍵字是_______。5.如果一個函數(shù)不需要接收任何參數(shù),但希望執(zhí)行一些操作,可以使用_______關(guān)鍵字定義它。6.語句_______用于嘗試執(zhí)行一段代碼,并在發(fā)生錯誤時(shí)捕獲異常。7.Python中,用于將字符串轉(zhuǎn)換為小寫的內(nèi)置方法是_______。8.語句_______用于在代碼塊開始前聲明這個代碼塊屬于當(dāng)前文件的主執(zhí)行部分。9.保留字_______用于導(dǎo)入模塊中所有的公共名稱。10.標(biāo)準(zhǔn)庫_______提供了處理JSON(JavaScriptObjectNotation)數(shù)據(jù)格式的功能。三、編程題(共60分)1.(15分)編寫一個Python函數(shù),名為`calculate_score`。該函數(shù)接收兩個參數(shù):一個數(shù)字列表`scores`和一個可選參數(shù)`weights`(默認(rèn)為`None`)。如果`weights`提供了,它應(yīng)該是一個與`scores`長度相同的數(shù)字列表,表示每個分?jǐn)?shù)的權(quán)重。如果`weights`未提供,則所有分?jǐn)?shù)的權(quán)重默認(rèn)為1。函數(shù)計(jì)算并返回加權(quán)平均分。如果`scores`為空列表,返回`0`。確保對輸入進(jìn)行基本驗(yàn)證,例如`scores`和`weights`(如果提供)長度應(yīng)相等。2.(20分)編寫一個Python腳本,完成以下任務(wù):a.打開一個名為`input.txt`的文本文件(假設(shè)該文件已存在,并包含多行文本)。b.讀取文件中的所有文本行,并存儲到一個列表`lines`中。c.遍歷`lines`列表,對于每一行,使用正則表達(dá)式(`re`模塊)查找所有以大寫字母開頭的單詞,并將這些單詞存儲到一個新的列表`capital_words`中。d.關(guān)閉文件。e.打開一個名為`output.txt`的文本文件用于寫入。f.將`capital_words`列表中的所有單詞,每個單詞占一行,寫入到`output.txt`文件中。g.關(guān)閉`output.txt`文件。(注意:確保處理文件可能出現(xiàn)的異常,如文件打開失敗等。)3.(25分)設(shè)計(jì)一個簡單的命令行待辦事項(xiàng)列表應(yīng)用。要求使用面向?qū)ο缶幊趟枷耄x至少兩個類:*`Task`類:用于表示單個任務(wù),有屬性`description`(任務(wù)描述,字符串)和`completed`(是否完成,布爾值)。提供一個方法`__str__`返回任務(wù)的字符串表示形式。提供一個方法`mark_as_completed`來標(biāo)記任務(wù)為完成。*`TodoList`類:用于管理任務(wù)列表,有屬性`tasks`(存儲`Task`對象的列表)。提供一個方法`add_task`來添加新任務(wù)(創(chuàng)建`Task`對象并添加到`tasks`列表)。提供一個方法`show_tasks`來打印所有任務(wù)及其狀態(tài)(使用`Task`對象的`__str__`方法)。提供一個方法`complete_task`接收任務(wù)描述,找到對應(yīng)的任務(wù)并調(diào)用其`mark_as_completed`方法。編寫代碼創(chuàng)建一個`TodoList`實(shí)例,演示添加任務(wù)、顯示任務(wù)列表和標(biāo)記任務(wù)完成的功能。例如:```todo=TodoList()todo.add_task("LearnPython")todo.add_task("Readabook")todo.show_tasks()#輸出類似:#[]LearnPython#[]Readabookplete_task("LearnPython")todo.show_tasks()#輸出類似:#[x]LearnPython#[]Readabook```試卷答案一、選擇題1.B2.B3.C4.A5.D6.C7.A8.A9.B10.D二、填空題1.os2.列表3.模板4.not5.lambda6.try7.lower()8.if__name__=="__main__"9.*10.json三、編程題1.`calculate_score`函數(shù)```pythondefcalculate_score(scores,weights=None):ifnotscores:return0ifweightsisNone:weights=[1]*len(scores)eliflen(scores)!=len(weights):raiseValueError("Scoresandweightsmusthavethesamelength.")total_score=sum(score*weightforscore,weightinzip(scores,weights))total_weight=sum(weights)iftotal_weight==0:return0returntotal_score/total_weight```解析思路:*輸入驗(yàn)證:首先檢查`scores`是否為空列表,如果為空則直接返回`0`。然后檢查`weights`是否提供,如果未提供,則創(chuàng)建一個與`scores`長度相同的權(quán)重列表,其中每個元素為`1`。*權(quán)重驗(yàn)證:如果`weights`提供了,則必須檢查其長度是否與`scores`相同,如果不同則拋出異常。*計(jì)算加權(quán)平均:使用`zip`函數(shù)將`scores`和`weights`組合成元組對,然后通過列表推導(dǎo)式計(jì)算每個分?jǐn)?shù)與其權(quán)重的乘積之和(`total_score`)。同時(shí),計(jì)算權(quán)重的總和(`total_weight`)。*處理除零:如果`total_weight`為`0`(理論上不會發(fā)生,因?yàn)殚L度相同且非空,但加上健壯性),則返回`0`。*返回結(jié)果:返回`total_score/total_weight`作為加權(quán)平均分。2.待辦事項(xiàng)列表應(yīng)用代碼```pythonimportreclassTask:def__init__(self,description):self.description=descriptionpleted=Falsedef__str__(self):returnf"[{pleted}]{self.description}"defmark_as_completed(self):pleted=TrueclassTodoList:def__init__(self):self.tasks=[]defadd_task(self,description):new_task=Task(description)self.tasks.append(new_task)defshow_tasks(self):fortaskinself.tasks:print(task)defcomplete_task(self,description):fortaskinself.tasks:iftask.description==description:task.mark_as_completed()returnprint(f"Task'{description}'notfound.")#演示if__name__=="__main__":todo=TodoList()todo.add_task("LearnPython")todo.add_task("Readabook")todo.show_tasks()#輸出類似:#[]LearnPython#[]Readabookplete_task("LearnPython")todo.show_tasks()#輸出類似:#[x]LearnPython#[]Readabook```解析思路:*導(dǎo)入模塊:導(dǎo)入`re`模塊用于正則表達(dá)式操作(雖然本例中未直接使用,但題目要求熟悉)。*`Task`類:*`__init__`方法:初始化任務(wù)的描述(`description`)和完成狀態(tài)(`completed`)。*`__str__`方法:定義任務(wù)的字符串表示形式,根據(jù)`completed`狀態(tài)顯示`[]`或`[x]`。*`mark_as_completed`方法:將任務(wù)的`completed`狀態(tài)設(shè)置為`True`。*`TodoList`類:*`__init__`方法:初始化一個空的任務(wù)列表(`tasks`)。*`add_task`方法:接收任務(wù)描述,創(chuàng)建一個`Task`對象,并將其添加到`tasks`列表。*`show_tasks`方法:遍歷`tasks`列表,打印每個任務(wù)的字符串表示(調(diào)用`Task`的`__str__`方法)。*`complete_task`方法:接收任務(wù)描述,遍歷`tasks`列表,找到描述匹配的任務(wù)并調(diào)用其`mark_as_completed`方法。如果未找到,打印提示信息。*主程序塊:使用`if__name__=="__main__":`確保以下代碼只在腳本直接運(yùn)行時(shí)執(zhí)行。創(chuàng)建`TodoList`實(shí)例,添加任務(wù),顯示任務(wù),完成特定任務(wù),再次顯示任務(wù)以驗(yàn)證功能。3.`input.txt`和`output.txt`腳本```pythonimportredefprocess_file(input_filename,output_filename):try:withopen(input_filename,'r',encoding='utf-8')asinfile:lines=infile.readlines()exceptFileNotFoundError:print(f"Error:Thefile{input_filename}doesnotexist.")returnexceptIOErrorase:print(f"Error:AnI/Oerroroccurredwhilereading{input_filename}:{e}")returncapital_words=[]pattern=pile(r'\b[A-Z][a-z]*\b')#匹配以大寫字母開頭,后跟小寫字母的單詞forlineinlines:matches=pattern.findall(line)capital_words.extend(matches)try:withopen(output_filename,'w',encoding='utf-8')asoutfile:forwordincapital_words:outfile.write(word+'\n')exceptIOErrorase:print(f"Error:AnI/Oerroroccurredwhilewritingto{output_filename}:{e}")#演示if__name__=="__main__":process_file("input.t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣東廣州市中山大學(xué)附屬口腔醫(yī)院工勤人員招聘1人備考題庫附參考答案詳解(典型題)
- 2026嵐圖汽車產(chǎn)研領(lǐng)域招聘備考題庫附答案詳解ab卷
- 公共交通運(yùn)營管理操作手冊
- 2026南京大學(xué)招聘SZXZ2026-004能源與資源學(xué)院專業(yè)、技術(shù)人員備考題庫附參考答案詳解(完整版)
- 人力資源管理策略與實(shí)施手冊
- 2026北京城鄉(xiāng)旅游汽車出租有限責(zé)任公司招聘40人備考題庫含答案詳解(突破訓(xùn)練)
- 2026云南紅河州個舊市醫(yī)療衛(wèi)生共同體乍甸分院編外工作人員招聘1人備考題庫帶答案詳解(能力提升)
- 保險(xiǎn)業(yè)務(wù)處理與理賠指導(dǎo)手冊(標(biāo)準(zhǔn)版)
- 2026廣東廣州花都區(qū)新雅街第二小學(xué)臨聘教師招聘3人備考題庫附答案詳解(黃金題型)
- 2026四川天府德陽分行人才招聘備考題庫完整參考答案詳解
- DB32/ 4440-2022城鎮(zhèn)污水處理廠污染物排放標(biāo)準(zhǔn)
- 文第19課《井岡翠竹》教學(xué)設(shè)計(jì)+2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 干部教育培訓(xùn)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 車庫使用協(xié)議合同
- 組件設(shè)計(jì)文檔-MBOM構(gòu)型管理
- 《不在網(wǎng)絡(luò)中迷失》課件
- 山東省泰安市2024-2025學(xué)年高一物理下學(xué)期期末考試試題含解析
- 竹子產(chǎn)業(yè)發(fā)展策略
- 【可行性報(bào)告】2023年硫精砂項(xiàng)目可行性研究分析報(bào)告
- 2024-2025年上海中考英語真題及答案解析
- 2023年內(nèi)蒙古呼倫貝爾市海拉爾區(qū)公開招聘公辦幼兒園控制數(shù)人員80名高頻筆試、歷年難易點(diǎn)考題(共500題含答案解析)模擬試卷
評論
0/150
提交評論