




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2025年P(guān)ython編程專項(xiàng)訓(xùn)練試卷:模擬實(shí)戰(zhàn),Python庫應(yīng)用技巧考試時間:______分鐘總分:______分姓名:______一、請定義一個函數(shù)`count_vowels(text)`,該函數(shù)接收一個字符串參數(shù)`text`,返回該字符串中元音字母(a,e,i,o,u,不區(qū)分大小寫)的出現(xiàn)次數(shù)。要求使用`collections.Counter`來實(shí)現(xiàn)計(jì)數(shù)。二、編寫代碼,使用`itertools`中的`chain`和`islice`函數(shù),從一個二維列表`data=[[1,2,3],[4,5],[6,7,8,9]]`中,按順序取出所有元素,但只取前6個元素,并將結(jié)果存儲在一個列表`result`中。三、假設(shè)有一個表示日期的字符串`date_str="2023-12-2515:30:00"`。請編寫代碼將其解析為`datetime`對象,然后計(jì)算并輸出這個日期時間對象3天后且時間為下午2:00的`datetime`對象。要求使用`datetime`模塊的相關(guān)類和方法。四、編寫Python代碼,實(shí)現(xiàn)以下功能:檢查當(dāng)前工作目錄(使用`os`模塊)下是否存在一個名為"my_files"的目錄。如果不存在,則創(chuàng)建該目錄;如果存在,則在該目錄下創(chuàng)建一個名為"new_document.txt"的空文件。五、請使用`re`模塊編寫正則表達(dá)式,并使用`re.findall`函數(shù)從文本`text="Myemailisexample@,hisemailistest@.Visittoday!"`中找出所有有效的電子郵件地址。六、請使用`requests`模塊向"/todos/1"發(fā)送GET請求,獲取JSON格式的響應(yīng)數(shù)據(jù)。然后將獲取到的JSON數(shù)據(jù)中的`title`和`completed`字段提取出來,分別打印這兩個值。七、假設(shè)你收到了一個JSON格式的字符串`json_str='[{"name":"Alice","age":25},{"name":"Bob","age":30}]'`。請編寫代碼將其反序列化成一個包含兩個字典的列表`people`。然后,請使用列表推導(dǎo)式,從`people`列表中篩選出所有年齡大于27歲的人的姓名,并將這些姓名存儲在一個列表`names`中。八、編寫一個生成器函數(shù)`generate_even_numbers(n)`,它接收一個整數(shù)參數(shù)`n`,并生成從0開始到`n`(不包括`n`)之間所有偶數(shù)的序列。九、編寫代碼實(shí)現(xiàn)一個簡單的文件搜索功能。函數(shù)`find_files_with_extension(root_dir,ext)`接收兩個參數(shù):`root_dir`是要搜索的根目錄路徑,`ext`是要查找的文件擴(kuò)展名(如".txt")。函數(shù)應(yīng)返回一個列表,包含根目錄及其所有子目錄下所有以指定擴(kuò)展名結(jié)尾的文件路徑。要求使用`os.walk`函數(shù)。十、請編寫代碼,定義一個自定義異常類`InvalidInputError`,它繼承自內(nèi)置的`ValueError`類。然后,在下面的代碼片段中,如果`user_input`的值不是正整數(shù),則拋出`InvalidInputError`異常。```pythondefprocess_input(user_input):#你的代碼,可能在函數(shù)內(nèi)部使用自定義異常pass```試卷答案一、```pythonfromcollectionsimportCounterdefcount_vowels(text):vowels='aeiouAEIOU'text_lower=text.lower()#轉(zhuǎn)小寫統(tǒng)一處理vowel_count=Counter(cforcintext_lowerifcinvowels)returnsum(vowel_count.values())```解析:定義函數(shù)接收字符串text。使用Counter對text中小寫字母的元音進(jìn)行計(jì)數(shù)(通過生成器表達(dá)式cforcintext_lowerifcinvowels)。將text轉(zhuǎn)為小寫以統(tǒng)一處理大小寫。最后返回元音字母的總計(jì)數(shù)(sum(vowel_count.values()))。二、```pythonfromitertoolsimportchain,islicedata=[[1,2,3],[4,5],[6,7,8,9]]result=list(islice(chain(*data),6))```解析:使用chain(*data)將二維列表data的內(nèi)部列表按順序連接成一個迭代器。然后使用islice從連接后的迭代器中取出前6個元素。最后將結(jié)果轉(zhuǎn)換為列表。三、```pythonfromdatetimeimportdatetime,timedeltadate_str="2023-12-2515:30:00"date_format="%Y-%m-%d%H:%M:%S"date_obj=datetime.strptime(date_str,date_format)target_date=date_obj+timedelta(days=3)target_datetime=target_date.replace(hour=14,minute=0,second=0)```解析:使用datetime.strptime將日期字符串date_str按指定格式%Y-%m-%d%H:%M:%S解析為datetime對象date_obj。使用timedelta(days=3)計(jì)算3天后的時間。使用replace方法將時間設(shè)置為下午2:00(14:00:00)。四、```pythonimportosdir_name="my_files"ifnotos.path.exists(dir_name):os.makedirs(dir_name)else:file_path=os.path.join(dir_name,"new_document.txt")ifnotos.path.exists(file_path):withopen(file_path,'w')asf:pass```解析:使用os.path.exists檢查當(dāng)前工作目錄下是否存在名為"my_files"的目錄。如果不存在,使用os.makedirs創(chuàng)建該目錄。如果存在,檢查"my_files"目錄下是否存在"new_document.txt"文件。如果不存在,則創(chuàng)建一個空文件。五、```pythonimportretext="Myemailisexample@,hisemailistest@.Visittoday!"email_pattern=r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"emails=re.findall(email_pattern,text)```解析:定義正則表達(dá)式email_pattern來匹配電子郵件地址的常見模式。使用re.findall在文本text中查找所有符合email_pattern的子串。打印結(jié)果emails列表。六、```pythonimportrequestsurl="/todos/1"response=requests.get(url)data=response.json()print(data['title'])print(data['completed'])```解析:導(dǎo)入requests模塊。定義目標(biāo)URLurl。使用requests.get發(fā)送GET請求。通過response.json()將JSON響應(yīng)內(nèi)容解析為Python字典data。從字典data中提取title和completed字段并打印。七、```pythonimportjsonjson_str='[{"name":"Alice","age":25},{"name":"Bob","age":30}]'people=json.loads(json_str)names=[person['name']forpersoninpeopleifperson['age']>27]```解析:使用json.loads將JSON字符串json_str反序列化為Python列表people。使用列表推導(dǎo)式遍歷people列表,篩選出age大于27的人,并提取其name字段,存儲在列表names中。八、```pythondefgenerate_even_numbers(n):foriinrange(0,n,2):yieldi```解析:定義生成器函數(shù)generate_even_numbers接收參數(shù)n。使用for循環(huán)和range函數(shù)從0開始到n(不包括n),步長為2進(jìn)行迭代。yield語句每次迭代產(chǎn)生一個偶數(shù)。九、```pythonimportosdeffind_files_with_extension(root_dir,ext):result=[]fordirpath,_,filenamesinos.walk(root_dir):forfilenameinfilenames:iffilename.endswith(ext):file_path=os.path.join(dirpath,filename)result.append(file_path)returnresult```解析:定義函數(shù)find_files_with_extension接收root_dir和ext參數(shù)。使用os.walk遞歸遍歷root_dir及其所有子目錄。檢查每個文件名filename是否以指定擴(kuò)展名ext結(jié)尾。如果是,使用os.path.join構(gòu)建完整路徑并添加到結(jié)果列表result中。最后返回result列表。十、```pythonclassInvalidInputError(ValueError):passdefprocess_input(user_input):ifnotisinstance(user_in
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦山安全管理規(guī)劃方案
- 食品安全教育推廣活動方案
- 青少教育培訓(xùn)運(yùn)營方案
- 2025廣東深圳北京大學(xué)國際法學(xué)院招聘1人模擬試卷含答案詳解
- 2025年泰安市泰山區(qū)面向全國引進(jìn)急需緊缺人才(50名)模擬試卷附答案詳解(考試直接用)
- 2025湖南師范大學(xué)科創(chuàng)港校區(qū)規(guī)劃建設(shè)指揮部勞務(wù)派遣人員招聘5人考前自測高頻考點(diǎn)模擬試題附答案詳解(完整版)
- 2025年六安金寨縣人民醫(yī)院招聘10人模擬試卷及答案詳解(典優(yōu))
- 2025湖南中醫(yī)藥大學(xué)第二附屬醫(yī)院第一批公開招聘21人模擬試卷有完整答案詳解
- 2025年甘肅省蘭州大學(xué)物理科學(xué)與技術(shù)學(xué)院誠聘英才考前自測高頻考點(diǎn)模擬試題及答案詳解(必刷)
- 2025內(nèi)蒙古鄂爾多斯實(shí)驗(yàn)室成果轉(zhuǎn)化部招聘3人考前自測高頻考點(diǎn)模擬試題完整參考答案詳解
- 多源信息融合技術(shù)應(yīng)用
- 11-特殊焊接與熱切割作業(yè)安全技術(shù)
- 骨科圍手術(shù)期壓瘡預(yù)防護(hù)理
- 2024年事業(yè)單位考試四川省甘孜藏族自治州A類《職業(yè)能力傾向測驗(yàn)》全真模擬試題含解析
- 溫嶺市建房用地管理辦法
- 第一章勾股定理問題解決策略反思課件北師大版數(shù)學(xué)八年級上冊
- 2025年上海市中考語文試卷真題(含答案及解析)
- 布依山歌教學(xué)課件
- T/CRACM 0003-2021脂20科學(xué)減脂技術(shù)服務(wù)規(guī)范
- 2025年鐵路客運(yùn)值班員(高級)職業(yè)技能鑒定參考試題庫(含答案)
- 解碼國家安全知到智慧樹章節(jié)測試課后答案2024年秋國際關(guān)系學(xué)院
評論
0/150
提交評論