廣東省揭陽市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第1頁
廣東省揭陽市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第2頁
廣東省揭陽市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第3頁
廣東省揭陽市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第4頁
廣東省揭陽市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

廣東省揭陽市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.商品銷售的售貨單和商品之間的聯(lián)系是()。

A.多對多B.—對多C.多對一D.—對一

2.將E-R圖轉(zhuǎn)換為關(guān)系模式時,實(shí)體和聯(lián)系都可以表示為()。

A.屬性B.鍵C.關(guān)系D.域

3.設(shè)線性表的長度為12。最壞情況下冒泡排序需要的比較次數(shù)為()。

A.66B.78C.144D.60

4.以下關(guān)于Python中字典的描述正確的是()。

A.字典用花括號({})創(chuàng)建,每個元素都是一個鍵值對

B.創(chuàng)建字典只能通過dict()函數(shù)

C.字典中不可以嵌套字典

D.使用del語句進(jìn)行字典操作時,不需要指定字典名和要刪除的鍵

5.以下不屬于Python語言保留字的是()。

A.classB.passC.subD.def

6.以下選項(xiàng)中不是Python文件目錄操作方法的是()。

A.split()B.rename()C.getcwd()D.rmdir()

7.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)A.0x452B.breakC.553D.”0x452//2"

8.第三方庫Beauifulsoup4的功能是()。

A.解析和處理HTML和XMLB.支持web應(yīng)用程序框架C.支持webservices框架D.處理http請求

9.在Python語言中,使用for..in..方式形成的循環(huán)不能遍歷的類型是()。

A.列表B.復(fù)數(shù)C.字符串D.字典

10.執(zhí)行以下代碼的結(jié)果是()A.2B.5C.8D.Anexceptionisthrown

11.以下關(guān)于函數(shù)定義的描述,正確的是()。

A.函數(shù)必須要有返回值

B.函數(shù)定義中可以定義無限多個參數(shù)

C.函數(shù)定義的關(guān)鍵字是class

D.函數(shù)定義時可選參數(shù)是在非可選參數(shù)前面的

12.下面代碼的輸出結(jié)果是()。try:print(8/9/(8//9))except:print("計(jì)算錯誤")

A.0B.1C.計(jì)算錯誤D.8

13.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)

A.0x452B.breakC.553D.”0x452//2”

14.現(xiàn)在假設(shè)有一個包含一個函數(shù)的程序放在一個文件中,在主程序文件中使用下面各種方法來導(dǎo)入它,哪一種方法是錯誤的?()

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

15.下面關(guān)于Python中實(shí)參和形參的說法錯誤的是()。

A.在函數(shù)定義時的參數(shù)被稱為形參,形參不是實(shí)際存在的變量

B.可選參數(shù)一般都放置在非可選參數(shù)的后面

C.實(shí)參必須是一個常量

D.形參存在的目的是接收調(diào)用函數(shù)時傳入的實(shí)參

16.表達(dá)式divmod(40,3)的結(jié)果是()。

A.13,1B.(13,1)C.13D.1

17.以下不屬于Python的pip工具命令的是()。

A.getB.installC.showD.download

18.下面關(guān)于遞歸函數(shù),描述錯誤的是()。

A.遞歸函數(shù)必須有一個明確的結(jié)束條件

B.遞歸函數(shù)就是一個函數(shù)在內(nèi)部調(diào)用自身本身

C.遞歸效率不高,遞歸層次過多會導(dǎo)致棧溢出

D.每進(jìn)入更深一層的遞歸時,問題規(guī)模相對于前一次遞歸是不變的

19.以下變量名中,符合Python語言變量命名規(guī)則的是()。

A.33_keywordB.key@word33_C.nonlocalD._33keyword

20.下面屬于Python的標(biāo)準(zhǔn)庫是()。

A.turtleB.jiebaC.scipyD.Flask

21.以下程序的輸出結(jié)果是()。Is=list(range(5))print(Is)

A.{0,1,2,3,4}B.[0,1,2,3,4]C.{l,2,3,4}D.[l,2,3,4]

22.軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合

B.高內(nèi)聚低耦合

C.低內(nèi)聚高耦合

D.高內(nèi)聚高耦合

23.以下程序的輸出結(jié)果是()。foriinreversed(range(7,4,-1)): print(i,end=“”)

A.7654B.765C.567D.4567

24.定義在類中的方法之外的變量是()

A.實(shí)例變量B.類變量C.公有變量D.私有變量

25.以下描述錯誤的是()。

A.Python是一門動態(tài)的解釋型語言

B.當(dāng)Python腳本程序發(fā)生了異常,如果不處理,運(yùn)行結(jié)果不可預(yù)測

C.編程語言中的異常和錯誤是完全相同的概念

D.Python通過try、except等保留字提供異常處理功能

26.以下對Python文件處理的描述中,錯誤的是()。

A.當(dāng)文件以文本方式打開時,讀寫按照字節(jié)流方式

B.Python能夠以文本和二進(jìn)制兩種方式處理文件

C.Python通過解釋器內(nèi)置的open()函數(shù)打開一個文件

D.文件使用結(jié)束后可以用close()方法關(guān)閉,釋放文件的使用授權(quán)

27.當(dāng)試圖訪問的對象屬性不存在時,為了不讓程序拋出異常,需要用到的語句是()。

A.try-except語句B.for語句C.eval語句D.if語句

28.以下關(guān)于二進(jìn)制整數(shù)的定義,正確的是()。

A.081014B.0b1010C.0B1019D.ObC3F

29.下面代碼的輸出結(jié)果是()。words=”helloPythonworld!”f=lambdax:len(x)foriinwords.split():print(f(i),end=””)

A.555B.566C.666D.111111

30.以下屬于Python機(jī)器學(xué)習(xí)領(lǐng)域第三方庫的是()。

A.turtleB.numpyC.pygameD.mxnet

二、判斷題(10題)31.在類定義的外部沒有任何辦法可以訪問對象的私有成員。A.是B.否

32.Python不允許使用關(guān)鍵字作為變量名,但是允許使用內(nèi)置函數(shù)名作為變量名,不過這會改變函數(shù)名的含義,所以不建議這樣做。

A.是B.否

33.Python字符串方法replace()對字符串進(jìn)行原地修改。

A.是B.否

34.Python變量名必須以字母或下劃線開頭,并且區(qū)分字母大小寫。

A.是B.否

35.字典的“鍵”必須是不可變的。

A.是B.否

36.創(chuàng)建只包含一個元素的元組時,必須在元素后面加一個逗號,例如(3,)。

A.是B.否

37.如果需要連接大量字符串成為一個字符串,那么使用字符串對象的join()方法比運(yùn)算符+具有更高的效率。

A.是B.否

38.在編寫應(yīng)用程序時,應(yīng)合理控制線程數(shù)量,線程并不是越多越好。

A.是B.否

39.字典可以作為集合的元素。

A.是B.否

40.Python變量名區(qū)分大小寫,所以student和Student不是同一個變量。

A.是B.否

三、填空題(10題)41.Python內(nèi)置函數(shù)_____________用來打開或創(chuàng)建文件并返回文件對象。

42.表達(dá)式abs(-3)的值為___________。

43.Python擴(kuò)展庫_____________支持Excel2007或更高版本文件的讀寫操作。

44.Python3.x語句print(1,2,3,sep=',')的輸出結(jié)果為________________。

45.表達(dá)式len('中國'.encode('gbk'))的值為____________。

46.已知字典x={i:str(i+3)foriinrange(3)},那么表達(dá)式sum(x)的值為______。

47.使用pip工具查看當(dāng)前已安裝的Python擴(kuò)展庫的完整命令是_____________。

48.表達(dá)式list(map(list,zip(*[[1,2,3],[4,5,6]])))的值為________________。

49.已知x={1,2,3},那么執(zhí)行語句x.add(3)之后,x的值為__________。

50.已知x,y=3,5,那么執(zhí)行x,y=y,x之后,x的值為__________。

四、操作題(3題)51.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題;1個文本文件,作為本題目輸入數(shù)據(jù),請按照源文件內(nèi)部說明修改代碼,實(shí)現(xiàn)以下功能:

《賣火柴的小女孩》是丹麥童話故事作家安徒生的一篇童話故事,發(fā)表于1846年。主要講了一個賣火柴的小女孩在富人闔家歡樂、舉杯共慶的大年夜凍死在街頭的故事。這里給出《賣火柴的小女孩》的一個網(wǎng)絡(luò)版本文件,文件名為“小女孩.txt”。問題1:在PY301—1.py文件中修改代碼,對“小女孩.txt”文件進(jìn)行字符頻次統(tǒng)計(jì),輸出頻次最高的中文字符(不包含標(biāo)點(diǎn)符號)及其頻次,字符與頻次之間采用英文冒號”:”分隔,將輸出結(jié)果保存在考生文件夾下,命名為"PY301—1.txt"。示例格式如下:的:83

試題程序:#以下代碼為提示框架

#請?jiān)凇幨褂靡恍谢蚨嘈写a替換

#請?jiān)赺_______處使用一行代碼替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301—1.txt”,”w”)

d={}

fo.write(”{}:{}”.format(__________))

fo.close()問題2:在PY301—2.py文件中修改代碼,對“小女孩.txt”文件進(jìn)行字符頻次統(tǒng)計(jì),按照頻次由高到低,輸出前10個頻次最高的字符,不包含回車符,字符之間無間隔,連續(xù)輸出,將輸出結(jié)果保存在考生文件夾下,命名為“PY301—2.txt”。示例格式如下:,的一…(后略,共10個字符)

試題程序:

#以下代碼為提示框架

#請?jiān)凇幨褂靡恍谢蚨嘈写a替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301一2.txt”,“w”)d={}ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序

問題3:在PY301一3.py文件中修改代碼,對“小女孩.txt”文件進(jìn)行字符頻次統(tǒng)計(jì),將所有字符按照頻次從高到低排序,字符包括中文、標(biāo)點(diǎn)、英文等符號,但不包含空格和回車。將排序后的字符及頻次輸出到考生文件夾下,文件名為“小女孩一頻次排序.txt”。字符與頻次之間采用英文冒號”:”分隔,各字符之間采用英文逗號”,”分隔,參考CSV格式,最后無逗號,文件內(nèi)部示例格式如下:

著:30,那:29,火:29

試題程序:

#以下代碼為提示框架

#請?jiān)凇幨褂靡恍谢蚨嘈写a替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

d={}

ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)}}#此行可以按照詞頻由高到低排序

52.考生文件夾下存在2個Python源文件和3個文本文件,分別對應(yīng)兩個問題,請按照文件內(nèi)說明修改代碼,實(shí)現(xiàn)以下功能?!墩撜Z》是儒家學(xué)派的經(jīng)典著作之一,主要記錄了孔子及其弟子言行。這里給出了一個網(wǎng)絡(luò)版本的《論語》,文件名稱為“論語.txt”,其內(nèi)容采用逐句“原文”與逐句“注釋”相結(jié)合的形式組織,通過【原文】標(biāo)記《論語》原文內(nèi)容,通過【注釋】標(biāo)記《論語》注釋內(nèi)容,具體格式請參考“論語.txt”文件。問題1:在“PY301-1.py”文件中修改代碼,提取“論語.txt”文件中的原文內(nèi)容,輸出保存到考生文件夾下,文件名為“論語-原文.txt”。具體要求:僅保留“論語.txt”文件中所有【原文】標(biāo)簽下面的內(nèi)容,不保留標(biāo)簽,并去掉每行行首空格及行尾空格,無空行。原文圓括號及內(nèi)部數(shù)字是源文件中注釋內(nèi)容的標(biāo)記,請保留。文件輸出格式請參考“論語-原文-輸出示例.txt”文件。注意:輸出示例僅幫助考生了解輸出格式,不作它用。試題程序:#以下代碼為提示框架#請?jiān)诔绦虻?..處使用一行或多行代碼替換#請?jiān)诔绦虻腳___處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)fi=open(“論語.txt",)fo=open(“論語-原文.txt",)…Forlineinfi:…fo.write(line.lstrip())問題2:在“PY301-2.py”文件中修改代碼,對“論語-原文.txt”或“論語.txt”文件進(jìn)一步提純,去掉每行文字中所有圓括號及內(nèi)部數(shù)字,保存為“論語-提純原文.txt”文件。文件輸出格式請參考“論語-提純原文-輸出示例.txt”文件。注意:示例輸出文件僅幫助考生了解輸出格式,不做它用。試題程序:#以下代碼為提示框架#請?jiān)诔绦虻?..處使用一行或多行代碼替換#請?jiān)诔绦虻奶幨褂靡恍写a替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)fi=open("論語-原文.txt",_____)fo=open("論語-提純原文.txt",_____)Forlineinfi:line=line.replace()

53.考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能:

鍵盤輸入正整數(shù)n,按要求把n輸出到屏幕,格式要求:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。如果輸入正整數(shù)超過25位,則按照真實(shí)長度輸出。

例如:鍵盤輸入正整數(shù)n為1234,屏幕輸出===================1,234

試題程序:

#請完善如下代碼

s=input()

print(”{________(1)_________}”.format(________(2)_________))

參考答案

1.A一張售貨單可以有多種商品的記錄,一種商品也可以出現(xiàn)在多張售貨單上。因此售貨單和商品之間的聯(lián)系是多對多。本題選擇A選項(xiàng)。

2.C從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-\nR圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。本題選擇C選項(xiàng)。

3.A最壞情況下冒泡排序需要的比較次數(shù)為n(n—1)/2,本題中n=12,故需要比較66次。本題選擇A選項(xiàng)。

4.A創(chuàng)建字典時可以使用花括號({})建立;字典中可以嵌套字典;使用del語句操作字典時,語法格式為del字典名[<鍵名\n>]。本題選擇A選項(xiàng)。

5.C保留字,也稱關(guān)鍵字,是指被編程語言內(nèi)部定義并保留使用的標(biāo)識符。Python3.x版本中有35個保留字,分別為:and,as,assert,async,await,break,class,continue,def,del,elif,else,except,F(xiàn)alse,finally,for,from,global,if,import,in,is,lambda,None,nonlocal,not,or,pass,raise,retum,True,try,while,with,yield。本題選C選項(xiàng)。

6.Arename():給文件重命名;getcwd():得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑;rmdir():刪除目錄。split():按給出的分隔符分隔字符串,返回的是列表類型。

7.C該程序最外層是while循環(huán),while循環(huán)的條件是True,由此可知while內(nèi)的語句會無限循環(huán)。input()函數(shù)用來獲取用戶用鍵盤輸入的內(nèi)容并以字符串類型返回。eval()函數(shù)是把字符串轉(zhuǎn)換成Py-thon\r\n可用的語言。if語句的作用是控制程序是否繼續(xù)循環(huán),判斷條件中的0x452是十六進(jìn)制數(shù),對2\r\n整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選擇C選項(xiàng)。

8.ABeautifulsoup4-用于解析和處理HTML和XML。它的最大優(yōu)點(diǎn)是能根據(jù)HTML和XML語法建立解析樹,進(jìn)而高效解析其中的內(nèi)容。

9.B在Python語言中,使用for..in..方式形成的循環(huán)能遍歷的類型有字符串、文件、range()函數(shù)或組合數(shù)據(jù)類型,不能遍歷復(fù)數(shù)。

10.D

11.B函數(shù)定義:函數(shù)是指一組語句的集合通過一個名字(函數(shù)名)封裝起來,要想執(zhí)行這個函數(shù),只需要調(diào)用其函數(shù)名即可。return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。return語句可以出現(xiàn)在函數(shù)中的任何部分,可以同時將0個、1個或多個函數(shù)運(yùn)算結(jié)果返回給函數(shù)被調(diào)用處的變量。Python通過保留字def定義函數(shù),語法格式如下:def\n<函數(shù)名>(<非可選參數(shù)列表>,<可選參數(shù)>=<默認(rèn)值>):<函數(shù)體>return<返回值列表>可選參數(shù)一般都放置在非可選參數(shù)的后面。本題選擇B選項(xiàng)。

12.Cx/y返回x和y的商,產(chǎn)生的結(jié)果為浮點(diǎn)數(shù);x//y返回不大于x與y之商的最大整數(shù)。try-\nexcept是異常處理機(jī)制,當(dāng)try中的代碼報(bào)錯時執(zhí)行except后面的語句,不報(bào)錯則繼續(xù)執(zhí)行同級語句。由于8//9\n=0,8/9/0產(chǎn)生了除以0的操作,因此會報(bào)錯。本題選擇C選項(xiàng)。

13.C該程序最外層是while循環(huán),while循環(huán)的條件是True,由此可知while內(nèi)的語句會無限循環(huán)。input()函數(shù)是用來獲取用戶從鍵盤輸入的內(nèi)容并以字符串類型返回。eval()函數(shù)是把字符串轉(zhuǎn)換成Python可用的語言。if語句的作用是來控制程序是否繼續(xù)循環(huán),判斷條件中0x452是十六進(jìn)制數(shù),對2整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選C選項(xiàng)。

14.BD選項(xiàng)用于導(dǎo)入模塊中所有的函數(shù)從而直接調(diào)用該模塊中的函數(shù);A選項(xiàng)直接導(dǎo)入整個模塊,再利用“模塊名.函數(shù)名”這樣的方式來運(yùn)行該模塊中的函數(shù);C選項(xiàng)只是在導(dǎo)入該模塊時給該模塊起了一個別名,本質(zhì)和A選項(xiàng)一樣。B選項(xiàng)正確的寫法應(yīng)該是frommoduleimportfunctionasf,所以B選項(xiàng)錯誤。

15.CPython中函數(shù)定義時的參數(shù)稱為形參,調(diào)用時的參數(shù)稱為實(shí)參。實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等。調(diào)用函數(shù)時,形參用來接收實(shí)參的值。本題選擇C選項(xiàng)。

16.Bdivmod(x,y)函數(shù)用來計(jì)算x和y的除余結(jié)果,返回兩個值,分別是:x與y的整數(shù)除,即x//y,以及x與y的余數(shù),即x%y。返回的兩個值組成了一個元組類型,即小括號包含的兩個元素(x//y,x%y)。40//3=13,40%3=1,故答案為B項(xiàng)。

17.Ainstall命令用于安裝第三方庫;show命令是列出某個已經(jīng)安裝的庫的詳細(xì)信息;download命令用于下載第三方庫的安裝包,但并不安裝。get不屬于pip工具的命令。本題選擇A選項(xiàng)。

18.DA選項(xiàng)正確,遞歸函數(shù)必須要有一個明確的結(jié)束條件作為遞歸的出口;B選項(xiàng)正是遞歸函數(shù)的含義,正確;C選項(xiàng)正確,在計(jì)算機(jī)中,函數(shù)調(diào)用是通過棧這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,每當(dāng)進(jìn)入一個函數(shù)調(diào)用,棧就會加一層棧幀,每當(dāng)函數(shù)返回,棧就會減一層棧幀,由于棧的大小不是無限的,所以,遞歸調(diào)用的次數(shù)過多,會導(dǎo)致棧溢出;D選項(xiàng),每當(dāng)進(jìn)入更深一層的遞歸時,問題規(guī)模顯然會相對前一次遞歸減小。

19.DPython采用大寫字母、小寫字母、數(shù)字、下劃線和漢字等字符及其組合進(jìn)行命名,但名字的首字符不能是數(shù)字,標(biāo)識符中間不能出現(xiàn)空格,長度沒有限制。變量名不能與保留字相同。

20.Aturtle庫是Python的標(biāo)準(zhǔn)庫,用于基本圖形的繪制;jieba庫是Python的第三方中文分詞庫;scipy是數(shù)據(jù)分析方向的第三方庫;Flask是Web開發(fā)方向的第三方庫。本題選擇A選項(xiàng)。

21.Brange()函數(shù)的語法格式為range(\nstart,stop,step),作用是生成一個從start參數(shù)的值開始,到stop參數(shù)的值結(jié)束的數(shù)字序列(注意不包含參數(shù)stop)\n,step是步進(jìn)參數(shù)。一般默認(rèn)start為0,步進(jìn)step=1,如range(5),生成0、1、2、3、4。list()生成列表,所以最后列表IS=\n[0,1,2,3,4]。本題選擇B選項(xiàng)。

22.B解析:耦合性和內(nèi)聚性足模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn)。內(nèi)聚性是一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度量,作為軟件結(jié)構(gòu)設(shè)計(jì)的設(shè)計(jì)原則,要求每個模塊的內(nèi)部都具有很強(qiáng)的內(nèi)聚性;耦合性是指模塊間相互連接的緊密程度的度量,一個模塊與其他模塊的耦合性越強(qiáng)則該模塊的獨(dú)立性越弱。一般優(yōu)秀的軟件設(shè)計(jì)應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

23.Crange([start,]stop[,step=1])函數(shù)有3個參數(shù),用來生成一個從start參數(shù)的值開始到stop參數(shù)的值結(jié)束的數(shù)字序列,步長step默認(rèn)為1,區(qū)間為左閉右開。而reversed()函數(shù)用于反向列表。本題選擇C選項(xiàng)。

24.B

25.C異常指的是在程序運(yùn)行過程中發(fā)生的異常事件,通常是由外部問題(如硬件錯誤、輸入錯誤)所導(dǎo)致。錯誤是指導(dǎo)致系統(tǒng)不能按照用戶意圖工作的一切原因、事件。在程序設(shè)計(jì)過程中,由于某些錯誤的存在,因此程序無法正常運(yùn)行,處理這些錯誤使程序正確運(yùn)行就稱為錯誤處理。異常和錯誤是完全不同的概念。本題選擇C選項(xiàng)。

26.A文件包括文本文件和二進(jìn)制文件兩種類型。Python對文本文件和二進(jìn)制文件采用統(tǒng)一的操作步驟,即“打開一操作一關(guān)閉”,B項(xiàng)正確。采用文本方式讀人文件,文件經(jīng)過編碼形成字符串,打印出有含義的字符;采用二進(jìn)制方式打開文件,文件被解析為字節(jié)流,A項(xiàng)錯誤。Python通過open()函數(shù)打開一個文件,并返回一個操作這個文件的變量,語法:<變量名>=open(<文件路徑及文件名>,<打開模式>),C項(xiàng)正確。文件使用結(jié)束后要用close()方法關(guān)閉,釋放文件的使用授權(quán),語法:<變量名>.close(),D項(xiàng)正確。

27.Atry-except語句用于檢測和處理異常。本題選擇A選項(xiàng)。

28.B二進(jìn)制整數(shù)以0b開頭,后面跟二進(jìn)制數(shù)0和1。A、C、D三項(xiàng)中有4、9、C、3、F,這些都不是二進(jìn)制數(shù)。

29.B該代碼是一個匿名函數(shù)和split()方法的結(jié)合使用,split()方法把字符串words以空格分隔,返回的是列表類型。通過for循環(huán)把列表元素賦值給變量i,然后調(diào)用函數(shù)f計(jì)算每個單詞的長度,所以輸出的是566。

30.D在Python語言中,turtle庫是Python重要的標(biāo)準(zhǔn)庫之一,用于基本的圖形繪制;numpy庫屬于數(shù)據(jù)分析領(lǐng)域;pygame庫屬于游戲開發(fā)領(lǐng)域,都不屬于機(jī)器學(xué)習(xí)領(lǐng)域的第三方庫。

31.N

32.Y

33.N

34.Y

35.Y

36.Y

37.Y

38.Y

39.N

40.Y

41.open()

42.3

43.openpyxl

44.1,2,3

45.4

46.3

47.piplist

48.[[1,4],[2,5],[3,6]]

49.{1,2,3}

50.5

51.(1)fi=open("小女孩.txt","r")\r\nfo=open(”PY301—1.txt”,”w”)\r\ntxt=fi.read()\r\nd={}\r\nexclude=",。!?、()【】<>《》=:+-*-“”…"\r\nforwordintxt:\r\n

ifwordinexclude:\r\n

continue\r\n

else:\r\n

d[word]=d.get(word,0)+1\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)\r\n

fo.write(”{}:{}”format(ls[0][0],ls[0][1]))\r\n

fo.close()\r\n

(2)fi=open("小女孩.txt","r")\r\n

fo=open(”PY301—2.txt”,”w”)\r\n

txt=fi.read()\r\n

d={}\r\n

forwordintxt;\r\n

d[word]=d.get(word,0)+1\r\ndeld["\\n"]\r\n

ls=list(d.items())\r\n

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\n

foriinrange(10);\r\n

fo.write(ls[i][0])\r\n

fi.close()\r\n

fo.close()

(3)fi=open("小女孩.txt","r")\r\nfo=open(小女孩-頻次排序。txt","w")\r\ntxt=fi.read()\r\nd={}\r\nforwordintxt\r\nd[word]=d.get(word,0)+1\r\ndeld[""]\r\ndeld["\\n"]\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\nforiinrange(len(ls)):\r\nls[i]="{}:{}".format(ls[i][0],ls[i][1])\r\nfo.write(",".join(ls))\r\nfi.close()\r\nfo.close()(1)首先使用open()函數(shù)打開文件“小女孩.txt”,把文件的內(nèi)容通過read()方法保存到變量txt中;定義一個字符串變量exclude用來存放標(biāo)點(diǎn)符號。然后用for循環(huán)遍歷txt中的每個字符(word),并使用if條件進(jìn)行判斷,若該字符在變量exclude中,說明該字符為標(biāo)點(diǎn)符號,跳出該循環(huán);否則將該字符作為字典d中的一個鍵,該鍵所對應(yīng)的值置為1,在后面循環(huán)中只要遍歷的字符與該鍵相同,就將該鍵對應(yīng)的值加1。\r\n

ls=list(d.items())表示將字典類型變成列表類型,字典中的每個鍵值對對應(yīng)列表中的一個元組。隨后,對列表ls中的元組進(jìn)行排序,用到sort()方法,參數(shù)“key=lambda.x:x[1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個元組,x只是臨時起的一個名字,也可以使用任意的名字;x[1]表示以元組中第二個元素排序。sort()方法的第二參數(shù)表示是按哪種方式排序,若為“reverse=True”表示按降序排序;若該參數(shù)缺省或“reverse=False”,表示按升序排序。\r\n

排序后,列表ls中第一個元組中即為頻次最高的中文字符和頻次,ls[0][0]表示該字符,ls[0][1]表示其頻次,將這兩個元素通過“:”連接寫入文件“PY301—1.txt”中。\r\n

(2)問題2和問題1的區(qū)別在于統(tǒng)計(jì)的字符包含標(biāo)點(diǎn)符號,因此不需要設(shè)置字符串變量exclude和使用if條件語句進(jìn)行判斷;題目要求不包含回車符,因此需要使用del刪除字典d中鍵為”\n”的元素。最后要無間隔輸出前10個頻次最高的字符,需要對排序好的列表ls進(jìn)行for循環(huán)遍歷,找到前10個元組的第一個元素,并將其直接寫入到文件“PY301—2.txt”中。\r\n

(3)問題3和問題2的區(qū)別在于統(tǒng)計(jì)的字符中不能包含空格,因此需要使用del刪除字典d中鍵為空格的元素。最后要將所有字符和其頻次輸出,需要對排序好的列表ls進(jìn)行for循環(huán)遍歷,遍歷列表中的每個元組,并將元組中的兩個元素通過“:”連接,再用逗號分隔每個字符寫入到文件“小女孩一頻次排序.txt”中。

52.fi=open(“論語.txt'”r”)fo=open(”論語-原文.txt”,”w”)Flag=falseforlineinfi:If”【“inline:Flag=falseIf”【原文】”inline:Flag=tureContinueIffiag=ture:fo.write(line.lstrip())Fi.close()Fo.close()fi=open("論語-原文.txt"’r’)fo=open("論語-提純原文.txt”,’w’)forlineinfi:Foriinrange(1,23):line=line,replace(“{}”.format(i),””)fowrite(line)Fi.close()Fo.close()(1)題目要求從“論語.txt”文件中提取內(nèi)容,輸出保存到文件“論語-原文.txt”中,因此需要用”r”模式打開“論語”txt”,用”\r\nw”模式創(chuàng)建文件“論語-原文.txt”。本題要求區(qū)域性提取,與單行提取不同,因此,可以借助寫標(biāo)記flag來標(biāo)記操作的是哪里的文本。使用for循環(huán)遍歷“論語.txt”中的每一行,當(dāng)該行存在時,說明已經(jīng)到了新的區(qū)域,寫標(biāo)記設(shè)置為否,即flag\r\n=False;當(dāng)該行存在【原文】時,寫標(biāo)記設(shè)置為True;當(dāng)寫標(biāo)記為True時,就將當(dāng)前行內(nèi)容寫入新的文件”論語-原文.txt"中。對文件操作完成后,使用close()方法關(guān)閉文件。(2)題目要求對“論語-原文.txt”進(jìn)一步提純,保存為“論語-提純原文.txt”文件,因此需要用”r”模式打開“論語-原文.txt”,用”\r\nw”模式創(chuàng)建文件“論語-提純原文.txt”。題目要求去掉每行文字中所有圓括號及內(nèi)部數(shù)字,可在for循環(huán)遍歷“論語-原文.txt”文件中的每一行時,用空格來代替出現(xiàn)的“(數(shù)字)”形式。分析“論語-原文.txt”文件可知,其中出現(xiàn)(1)~(22)共22種可能,因此內(nèi)部嵌套for循環(huán)需要從1遍歷到22,構(gòu)造(i)并替換。替換后將該行內(nèi)容寫入文件“論語-提純原文.txt”中。對文件操作完成后,使用close()方法關(guān)閉文件。

53.s=input()\r\nprint(”{:=>25}”.format(eval(s)))該題目主要考查Python字符串的格式化方法。Python語言推薦使用.format()格式化方法,其使用方式如下:\r\n

<模板字符串>.format(<逗號分隔的參數(shù)>)\r\n

其中,模板字符串是一個由字符串和槽組成的字符串,用來控制字符串和變量的顯示效果。槽用大括號({})表示,對應(yīng)format()方法中逗號分隔的參數(shù)。如果模板字符串中有多個槽,可以通過format()參數(shù)的序號在模板字符串槽中指定參數(shù)的使用,參數(shù)從0開始編號。例如:\r\n”{0}日:學(xué)而不思則罔,思而不學(xué){1}?!保甪ormat(”孔子”,”則殆”)\r\n

其結(jié)果為:’孔子日:學(xué)而不思則罔,思而不學(xué)則殆?!痋r\n

format()方法的槽除了包括參數(shù)序號,還可以包括格式控制信息,語法格式如下:\r\n

{<參數(shù)序號>:<格式控制標(biāo)記>}\r\n其中,格式控制標(biāo)記包括:<填充><對齊><寬度><,><.精度><類型>6個字段,由引導(dǎo)符號(:)作為引導(dǎo)標(biāo)記,這些字段都是可選的,可以組合使用。\r\n

<填充>:指用于填充的單個字符。\r\n

<對齊>:分別使用<、>和^三個符號表示左對齊、右對齊和居中對齊。\r\n<寬度>:當(dāng)前槽的設(shè)定輸出字符寬度。\r\n<,>:用于顯示數(shù)字類型的千位分隔符。\r\n

<.精度>:由小數(shù)點(diǎn)(.)開頭,對于浮點(diǎn)數(shù),精度表示小數(shù)部分輸出的有效位數(shù);對于字符串,精度表示輸出的最大長度。\r\n

<類型>:表示輸出整數(shù)和浮點(diǎn)數(shù)類型的格式規(guī)則。\r\n

本題格式要求為:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。則模板字符串為:{:=>25,}。\r\n

由于題目要求帶千位分隔符,所以模板字符串對應(yīng)的:format()方法中的參數(shù)必須是數(shù)字類型,但無論用戶輸入的是字符還是數(shù)字,input()函數(shù)統(tǒng)一按照字符串類型輸出,這時就需要先使用eval()函數(shù)去掉字符串最外側(cè)的引號,然后再參與運(yùn)算。廣東省揭陽市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.商品銷售的售貨單和商品之間的聯(lián)系是()。

A.多對多B.—對多C.多對一D.—對一

2.將E-R圖轉(zhuǎn)換為關(guān)系模式時,實(shí)體和聯(lián)系都可以表示為()。

A.屬性B.鍵C.關(guān)系D.域

3.設(shè)線性表的長度為12。最壞情況下冒泡排序需要的比較次數(shù)為()。

A.66B.78C.144D.60

4.以下關(guān)于Python中字典的描述正確的是()。

A.字典用花括號({})創(chuàng)建,每個元素都是一個鍵值對

B.創(chuàng)建字典只能通過dict()函數(shù)

C.字典中不可以嵌套字典

D.使用del語句進(jìn)行字典操作時,不需要指定字典名和要刪除的鍵

5.以下不屬于Python語言保留字的是()。

A.classB.passC.subD.def

6.以下選項(xiàng)中不是Python文件目錄操作方法的是()。

A.split()B.rename()C.getcwd()D.rmdir()

7.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)A.0x452B.breakC.553D.”0x452//2"

8.第三方庫Beauifulsoup4的功能是()。

A.解析和處理HTML和XMLB.支持web應(yīng)用程序框架C.支持webservices框架D.處理http請求

9.在Python語言中,使用for..in..方式形成的循環(huán)不能遍歷的類型是()。

A.列表B.復(fù)數(shù)C.字符串D.字典

10.執(zhí)行以下代碼的結(jié)果是()A.2B.5C.8D.Anexceptionisthrown

11.以下關(guān)于函數(shù)定義的描述,正確的是()。

A.函數(shù)必須要有返回值

B.函數(shù)定義中可以定義無限多個參數(shù)

C.函數(shù)定義的關(guān)鍵字是class

D.函數(shù)定義時可選參數(shù)是在非可選參數(shù)前面的

12.下面代碼的輸出結(jié)果是()。try:print(8/9/(8//9))except:print("計(jì)算錯誤")

A.0B.1C.計(jì)算錯誤D.8

13.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)

A.0x452B.breakC.553D.”0x452//2”

14.現(xiàn)在假設(shè)有一個包含一個函數(shù)的程序放在一個文件中,在主程序文件中使用下面各種方法來導(dǎo)入它,哪一種方法是錯誤的?()

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

15.下面關(guān)于Python中實(shí)參和形參的說法錯誤的是()。

A.在函數(shù)定義時的參數(shù)被稱為形參,形參不是實(shí)際存在的變量

B.可選參數(shù)一般都放置在非可選參數(shù)的后面

C.實(shí)參必須是一個常量

D.形參存在的目的是接收調(diào)用函數(shù)時傳入的實(shí)參

16.表達(dá)式divmod(40,3)的結(jié)果是()。

A.13,1B.(13,1)C.13D.1

17.以下不屬于Python的pip工具命令的是()。

A.getB.installC.showD.download

18.下面關(guān)于遞歸函數(shù),描述錯誤的是()。

A.遞歸函數(shù)必須有一個明確的結(jié)束條件

B.遞歸函數(shù)就是一個函數(shù)在內(nèi)部調(diào)用自身本身

C.遞歸效率不高,遞歸層次過多會導(dǎo)致棧溢出

D.每進(jìn)入更深一層的遞歸時,問題規(guī)模相對于前一次遞歸是不變的

19.以下變量名中,符合Python語言變量命名規(guī)則的是()。

A.33_keywordB.key@word33_C.nonlocalD._33keyword

20.下面屬于Python的標(biāo)準(zhǔn)庫是()。

A.turtleB.jiebaC.scipyD.Flask

21.以下程序的輸出結(jié)果是()。Is=list(range(5))print(Is)

A.{0,1,2,3,4}B.[0,1,2,3,4]C.{l,2,3,4}D.[l,2,3,4]

22.軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合

B.高內(nèi)聚低耦合

C.低內(nèi)聚高耦合

D.高內(nèi)聚高耦合

23.以下程序的輸出結(jié)果是()。foriinreversed(range(7,4,-1)): print(i,end=“”)

A.7654B.765C.567D.4567

24.定義在類中的方法之外的變量是()

A.實(shí)例變量B.類變量C.公有變量D.私有變量

25.以下描述錯誤的是()。

A.Python是一門動態(tài)的解釋型語言

B.當(dāng)Python腳本程序發(fā)生了異常,如果不處理,運(yùn)行結(jié)果不可預(yù)測

C.編程語言中的異常和錯誤是完全相同的概念

D.Python通過try、except等保留字提供異常處理功能

26.以下對Python文件處理的描述中,錯誤的是()。

A.當(dāng)文件以文本方式打開時,讀寫按照字節(jié)流方式

B.Python能夠以文本和二進(jìn)制兩種方式處理文件

C.Python通過解釋器內(nèi)置的open()函數(shù)打開一個文件

D.文件使用結(jié)束后可以用close()方法關(guān)閉,釋放文件的使用授權(quán)

27.當(dāng)試圖訪問的對象屬性不存在時,為了不讓程序拋出異常,需要用到的語句是()。

A.try-except語句B.for語句C.eval語句D.if語句

28.以下關(guān)于二進(jìn)制整數(shù)的定義,正確的是()。

A.081014B.0b1010C.0B1019D.ObC3F

29.下面代碼的輸出結(jié)果是()。words=”helloPythonworld!”f=lambdax:len(x)foriinwords.split():print(f(i),end=””)

A.555B.566C.666D.111111

30.以下屬于Python機(jī)器學(xué)習(xí)領(lǐng)域第三方庫的是()。

A.turtleB.numpyC.pygameD.mxnet

二、判斷題(10題)31.在類定義的外部沒有任何辦法可以訪問對象的私有成員。A.是B.否

32.Python不允許使用關(guān)鍵字作為變量名,但是允許使用內(nèi)置函數(shù)名作為變量名,不過這會改變函數(shù)名的含義,所以不建議這樣做。

A.是B.否

33.Python字符串方法replace()對字符串進(jìn)行原地修改。

A.是B.否

34.Python變量名必須以字母或下劃線開頭,并且區(qū)分字母大小寫。

A.是B.否

35.字典的“鍵”必須是不可變的。

A.是B.否

36.創(chuàng)建只包含一個元素的元組時,必須在元素后面加一個逗號,例如(3,)。

A.是B.否

37.如果需要連接大量字符串成為一個字符串,那么使用字符串對象的join()方法比運(yùn)算符+具有更高的效率。

A.是B.否

38.在編寫應(yīng)用程序時,應(yīng)合理控制線程數(shù)量,線程并不是越多越好。

A.是B.否

39.字典可以作為集合的元素。

A.是B.否

40.Python變量名區(qū)分大小寫,所以student和Student不是同一個變量。

A.是B.否

三、填空題(10題)41.Python內(nèi)置函數(shù)_____________用來打開或創(chuàng)建文件并返回文件對象。

42.表達(dá)式abs(-3)的值為___________。

43.Python擴(kuò)展庫_____________支持Excel2007或更高版本文件的讀寫操作。

44.Python3.x語句print(1,2,3,sep=',')的輸出結(jié)果為________________。

45.表達(dá)式len('中國'.encode('gbk'))的值為____________。

46.已知字典x={i:str(i+3)foriinrange(3)},那么表達(dá)式sum(x)的值為______。

47.使用pip工具查看當(dāng)前已安裝的Python擴(kuò)展庫的完整命令是_____________。

48.表達(dá)式list(map(list,zip(*[[1,2,3],[4,5,6]])))的值為________________。

49.已知x={1,2,3},那么執(zhí)行語句x.add(3)之后,x的值為__________。

50.已知x,y=3,5,那么執(zhí)行x,y=y,x之后,x的值為__________。

四、操作題(3題)51.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題;1個文本文件,作為本題目輸入數(shù)據(jù),請按照源文件內(nèi)部說明修改代碼,實(shí)現(xiàn)以下功能:

《賣火柴的小女孩》是丹麥童話故事作家安徒生的一篇童話故事,發(fā)表于1846年。主要講了一個賣火柴的小女孩在富人闔家歡樂、舉杯共慶的大年夜凍死在街頭的故事。這里給出《賣火柴的小女孩》的一個網(wǎng)絡(luò)版本文件,文件名為“小女孩.txt”。問題1:在PY301—1.py文件中修改代碼,對“小女孩.txt”文件進(jìn)行字符頻次統(tǒng)計(jì),輸出頻次最高的中文字符(不包含標(biāo)點(diǎn)符號)及其頻次,字符與頻次之間采用英文冒號”:”分隔,將輸出結(jié)果保存在考生文件夾下,命名為"PY301—1.txt"。示例格式如下:的:83

試題程序:#以下代碼為提示框架

#請?jiān)凇幨褂靡恍谢蚨嘈写a替換

#請?jiān)赺_______處使用一行代碼替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301—1.txt”,”w”)

d={}

fo.write(”{}:{}”.format(__________))

fo.close()問題2:在PY301—2.py文件中修改代碼,對“小女孩.txt”文件進(jìn)行字符頻次統(tǒng)計(jì),按照頻次由高到低,輸出前10個頻次最高的字符,不包含回車符,字符之間無間隔,連續(xù)輸出,將輸出結(jié)果保存在考生文件夾下,命名為“PY301—2.txt”。示例格式如下:,的一…(后略,共10個字符)

試題程序:

#以下代碼為提示框架

#請?jiān)凇幨褂靡恍谢蚨嘈写a替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301一2.txt”,“w”)d={}ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序

問題3:在PY301一3.py文件中修改代碼,對“小女孩.txt”文件進(jìn)行字符頻次統(tǒng)計(jì),將所有字符按照頻次從高到低排序,字符包括中文、標(biāo)點(diǎn)、英文等符號,但不包含空格和回車。將排序后的字符及頻次輸出到考生文件夾下,文件名為“小女孩一頻次排序.txt”。字符與頻次之間采用英文冒號”:”分隔,各字符之間采用英文逗號”,”分隔,參考CSV格式,最后無逗號,文件內(nèi)部示例格式如下:

著:30,那:29,火:29

試題程序:

#以下代碼為提示框架

#請?jiān)凇幨褂靡恍谢蚨嘈写a替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

d={}

ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)}}#此行可以按照詞頻由高到低排序

52.考生文件夾下存在2個Python源文件和3個文本文件,分別對應(yīng)兩個問題,請按照文件內(nèi)說明修改代碼,實(shí)現(xiàn)以下功能。《論語》是儒家學(xué)派的經(jīng)典著作之一,主要記錄了孔子及其弟子言行。這里給出了一個網(wǎng)絡(luò)版本的《論語》,文件名稱為“論語.txt”,其內(nèi)容采用逐句“原文”與逐句“注釋”相結(jié)合的形式組織,通過【原文】標(biāo)記《論語》原文內(nèi)容,通過【注釋】標(biāo)記《論語》注釋內(nèi)容,具體格式請參考“論語.txt”文件。問題1:在“PY301-1.py”文件中修改代碼,提取“論語.txt”文件中的原文內(nèi)容,輸出保存到考生文件夾下,文件名為“論語-原文.txt”。具體要求:僅保留“論語.txt”文件中所有【原文】標(biāo)簽下面的內(nèi)容,不保留標(biāo)簽,并去掉每行行首空格及行尾空格,無空行。原文圓括號及內(nèi)部數(shù)字是源文件中注釋內(nèi)容的標(biāo)記,請保留。文件輸出格式請參考“論語-原文-輸出示例.txt”文件。注意:輸出示例僅幫助考生了解輸出格式,不作它用。試題程序:#以下代碼為提示框架#請?jiān)诔绦虻?..處使用一行或多行代碼替換#請?jiān)诔绦虻腳___處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)fi=open(“論語.txt",)fo=open(“論語-原文.txt",)…Forlineinfi:…fo.write(line.lstrip())問題2:在“PY301-2.py”文件中修改代碼,對“論語-原文.txt”或“論語.txt”文件進(jìn)一步提純,去掉每行文字中所有圓括號及內(nèi)部數(shù)字,保存為“論語-提純原文.txt”文件。文件輸出格式請參考“論語-提純原文-輸出示例.txt”文件。注意:示例輸出文件僅幫助考生了解輸出格式,不做它用。試題程序:#以下代碼為提示框架#請?jiān)诔绦虻?..處使用一行或多行代碼替換#請?jiān)诔绦虻奶幨褂靡恍写a替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)fi=open("論語-原文.txt",_____)fo=open("論語-提純原文.txt",_____)Forlineinfi:line=line.replace()

53.考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能:

鍵盤輸入正整數(shù)n,按要求把n輸出到屏幕,格式要求:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。如果輸入正整數(shù)超過25位,則按照真實(shí)長度輸出。

例如:鍵盤輸入正整數(shù)n為1234,屏幕輸出===================1,234

試題程序:

#請完善如下代碼

s=input()

print(”{________(1)_________}”.format(________(2)_________))

參考答案

1.A一張售貨單可以有多種商品的記錄,一種商品也可以出現(xiàn)在多張售貨單上。因此售貨單和商品之間的聯(lián)系是多對多。本題選擇A選項(xiàng)。

2.C從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-\nR圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。本題選擇C選項(xiàng)。

3.A最壞情況下冒泡排序需要的比較次數(shù)為n(n—1)/2,本題中n=12,故需要比較66次。本題選擇A選項(xiàng)。

4.A創(chuàng)建字典時可以使用花括號({})建立;字典中可以嵌套字典;使用del語句操作字典時,語法格式為del字典名[<鍵名\n>]。本題選擇A選項(xiàng)。

5.C保留字,也稱關(guān)鍵字,是指被編程語言內(nèi)部定義并保留使用的標(biāo)識符。Python3.x版本中有35個保留字,分別為:and,as,assert,async,await,break,class,continue,def,del,elif,else,except,F(xiàn)alse,finally,for,from,global,if,import,in,is,lambda,None,nonlocal,not,or,pass,raise,retum,True,try,while,with,yield。本題選C選項(xiàng)。

6.Arename():給文件重命名;getcwd():得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑;rmdir():刪除目錄。split():按給出的分隔符分隔字符串,返回的是列表類型。

7.C該程序最外層是while循環(huán),while循環(huán)的條件是True,由此可知while內(nèi)的語句會無限循環(huán)。input()函數(shù)用來獲取用戶用鍵盤輸入的內(nèi)容并以字符串類型返回。eval()函數(shù)是把字符串轉(zhuǎn)換成Py-thon\r\n可用的語言。if語句的作用是控制程序是否繼續(xù)循環(huán),判斷條件中的0x452是十六進(jìn)制數(shù),對2\r\n整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選擇C選項(xiàng)。

8.ABeautifulsoup4-用于解析和處理HTML和XML。它的最大優(yōu)點(diǎn)是能根據(jù)HTML和XML語法建立解析樹,進(jìn)而高效解析其中的內(nèi)容。

9.B在Python語言中,使用for..in..方式形成的循環(huán)能遍歷的類型有字符串、文件、range()函數(shù)或組合數(shù)據(jù)類型,不能遍歷復(fù)數(shù)。

10.D

11.B函數(shù)定義:函數(shù)是指一組語句的集合通過一個名字(函數(shù)名)封裝起來,要想執(zhí)行這個函數(shù),只需要調(diào)用其函數(shù)名即可。return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。return語句可以出現(xiàn)在函數(shù)中的任何部分,可以同時將0個、1個或多個函數(shù)運(yùn)算結(jié)果返回給函數(shù)被調(diào)用處的變量。Python通過保留字def定義函數(shù),語法格式如下:def\n<函數(shù)名>(<非可選參數(shù)列表>,<可選參數(shù)>=<默認(rèn)值>):<函數(shù)體>return<返回值列表>可選參數(shù)一般都放置在非可選參數(shù)的后面。本題選擇B選項(xiàng)。

12.Cx/y返回x和y的商,產(chǎn)生的結(jié)果為浮點(diǎn)數(shù);x//y返回不大于x與y之商的最大整數(shù)。try-\nexcept是異常處理機(jī)制,當(dāng)try中的代碼報(bào)錯時執(zhí)行except后面的語句,不報(bào)錯則繼續(xù)執(zhí)行同級語句。由于8//9\n=0,8/9/0產(chǎn)生了除以0的操作,因此會報(bào)錯。本題選擇C選項(xiàng)。

13.C該程序最外層是while循環(huán),while循環(huán)的條件是True,由此可知while內(nèi)的語句會無限循環(huán)。input()函數(shù)是用來獲取用戶從鍵盤輸入的內(nèi)容并以字符串類型返回。eval()函數(shù)是把字符串轉(zhuǎn)換成Python可用的語言。if語句的作用是來控制程序是否繼續(xù)循環(huán),判斷條件中0x452是十六進(jìn)制數(shù),對2整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選C選項(xiàng)。

14.BD選項(xiàng)用于導(dǎo)入模塊中所有的函數(shù)從而直接調(diào)用該模塊中的函數(shù);A選項(xiàng)直接導(dǎo)入整個模塊,再利用“模塊名.函數(shù)名”這樣的方式來運(yùn)行該模塊中的函數(shù);C選項(xiàng)只是在導(dǎo)入該模塊時給該模塊起了一個別名,本質(zhì)和A選項(xiàng)一樣。B選項(xiàng)正確的寫法應(yīng)該是frommoduleimportfunctionasf,所以B選項(xiàng)錯誤。

15.CPython中函數(shù)定義時的參數(shù)稱為形參,調(diào)用時的參數(shù)稱為實(shí)參。實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等。調(diào)用函數(shù)時,形參用來接收實(shí)參的值。本題選擇C選項(xiàng)。

16.Bdivmod(x,y)函數(shù)用來計(jì)算x和y的除余結(jié)果,返回兩個值,分別是:x與y的整數(shù)除,即x//y,以及x與y的余數(shù),即x%y。返回的兩個值組成了一個元組類型,即小括號包含的兩個元素(x//y,x%y)。40//3=13,40%3=1,故答案為B項(xiàng)。

17.Ainstall命令用于安裝第三方庫;show命令是列出某個已經(jīng)安裝的庫的詳細(xì)信息;download命令用于下載第三方庫的安裝包,但并不安裝。get不屬于pip工具的命令。本題選擇A選項(xiàng)。

18.DA選項(xiàng)正確,遞歸函數(shù)必須要有一個明確的結(jié)束條件作為遞歸的出口;B選項(xiàng)正是遞歸函數(shù)的含義,正確;C選項(xiàng)正確,在計(jì)算機(jī)中,函數(shù)調(diào)用是通過棧這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,每當(dāng)進(jìn)入一個函數(shù)調(diào)用,棧就會加一層棧幀,每當(dāng)函數(shù)返回,棧就會減一層棧幀,由于棧的大小不是無限的,所以,遞歸調(diào)用的次數(shù)過多,會導(dǎo)致棧溢出;D選項(xiàng),每當(dāng)進(jìn)入更深一層的遞歸時,問題規(guī)模顯然會相對前一次遞歸減小。

19.DPython采用大寫字母、小寫字母、數(shù)字、下劃線和漢字等字符及其組合進(jìn)行命名,但名字的首字符不能是數(shù)字,標(biāo)識符中間不能出現(xiàn)空格,長度沒有限制。變量名不能與保留字相同。

20.Aturtle庫是Python的標(biāo)準(zhǔn)庫,用于基本圖形的繪制;jieba庫是Python的第三方中文分詞庫;scipy是數(shù)據(jù)分析方向的第三方庫;Flask是Web開發(fā)方向的第三方庫。本題選擇A選項(xiàng)。

21.Brange()函數(shù)的語法格式為range(\nstart,stop,step),作用是生成一個從start參數(shù)的值開始,到stop參數(shù)的值結(jié)束的數(shù)字序列(注意不包含參數(shù)stop)\n,step是步進(jìn)參數(shù)。一般默認(rèn)start為0,步進(jìn)step=1,如range(5),生成0、1、2、3、4。list()生成列表,所以最后列表IS=\n[0,1,2,3,4]。本題選擇B選項(xiàng)。

22.B解析:耦合性和內(nèi)聚性足模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn)。內(nèi)聚性是一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度量,作為軟件結(jié)構(gòu)設(shè)計(jì)的設(shè)計(jì)原則,要求每個模塊的內(nèi)部都具有很強(qiáng)的內(nèi)聚性;耦合性是指模塊間相互連接的緊密程度的度量,一個模塊與其他模塊的耦合性越強(qiáng)則該模塊的獨(dú)立性越弱。一般優(yōu)秀的軟件設(shè)計(jì)應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

23.Crange([start,]stop[,step=1])函數(shù)有3個參數(shù),用來生成一個從start參數(shù)的值開始到stop參數(shù)的值結(jié)束的數(shù)字序列,步長step默認(rèn)為1,區(qū)間為左閉右開。而reversed()函數(shù)用于反向列表。本題選擇C選項(xiàng)。

24.B

25.C異常指的是在程序運(yùn)行過程中發(fā)生的異常事件,通常是由外部問題(如硬件錯誤、輸入錯誤)所導(dǎo)致。錯誤是指導(dǎo)致系統(tǒng)不能按照用戶意圖工作的一切原因、事件。在程序設(shè)計(jì)過程中,由于某些錯誤的存在,因此程序無法正常運(yùn)行,處理這些錯誤使程序正確運(yùn)行就稱為錯誤處理。異常和錯誤是完全不同的概念。本題選擇C選項(xiàng)。

26.A文件包括文本文件和二進(jìn)制文件兩種類型。Python對文本文件和二進(jìn)制文件采用統(tǒng)一的操作步驟,即“打開一操作一關(guān)閉”,B項(xiàng)正確。采用文本方式讀人文件,文件經(jīng)過編碼形成字符串,打印出有含義的字符;采用二進(jìn)制方式打開文件,文件被解析為字節(jié)流,A項(xiàng)錯誤。Python通過open()函數(shù)打開一個文件,并返回一個操作這個文件的變量,語法:<變量名>=open(<文件路徑及文件名>,<打開模式>),C項(xiàng)正確。文件使用結(jié)束后要用close()方法關(guān)閉,釋放文件的使用授權(quán),語法:<變量名>.close(),D項(xiàng)正確。

27.Atry-except語句用于檢測和處理異常。本題選擇A選項(xiàng)。

28.B二進(jìn)制整數(shù)以0b開頭,后面跟二進(jìn)制數(shù)0和1。A、C、D三項(xiàng)中有4、9、C、3、F,這些都不是二進(jìn)制數(shù)。

29.B該代碼是一個匿名函數(shù)和split()方法的結(jié)合使用,split()方法把字符串words以空格分隔,返回的是列表類型。通過for循環(huán)把列表元素賦值給變量i,然后調(diào)用函數(shù)f計(jì)算每個單詞的長度,所以輸出的是566。

30.D在Python語言中,turtle庫是Python重要的標(biāo)準(zhǔn)庫之一,用于基本的圖形繪制;numpy庫屬于數(shù)據(jù)分析領(lǐng)域;pygame庫屬于游戲開發(fā)領(lǐng)域,都不屬于機(jī)器學(xué)習(xí)領(lǐng)域的第三方庫。

31.N

32.Y

33.N

34.Y

35.Y

36.Y

37.Y

38.Y

39.N

40.Y

41.open()

42.3

43.openpyxl

44.1,2,3

45.4

46.3

47.piplist

48.[[1,4],[2,5],[3,6]]

49.{1,2,3}

50.5

51.(1)fi=open("小女孩.txt","r")\r\nfo=open(”PY301—1.txt”,”w”)\r\ntxt=fi.read()\r\nd={}\r\nexclude=",。?。?、()【】<>《》=:+-*-“”…"\r\nforwordintxt:\r\n

ifwordinexclude:\r\n

continue\r\n

else:\r\n

d[word]=d.get(word,0)+1\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)\r\n

fo.write(”{}:{}”format(ls[0][0],ls[0][1]))\r\n

fo.close()\r\n

(2)fi=open("小女孩.txt","r")\r\n

fo=open(”PY301—2.txt”,”w”)\r\n

txt=fi.read()\r\n

d={}\r\n

forwordintxt;\r\n

d[word]=d.get(word,0)+1\r\ndeld["\\n"]\r\n

ls=list(d.items())\r\n

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\n

foriinrange(10);\r\n

fo.write(ls[i][0])\r\n

fi.close()\r\n

fo.close()

(3)fi=open("小女孩.txt","r")\r\nfo=open(小女孩-頻次排序。txt","w")\r\ntxt=fi.read()\r\nd={}\r\nforwordintxt\r\nd[word]=d.get(word,0)+1\r\ndeld[""]\r\ndeld["\\n"]\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\nforiinrange(len(ls)):\r\nls[i]="{}:{}".format(ls[i][0],ls[i][1])\r\nfo.write(",".join(ls))\r\nfi.close()\r\nfo.close()(1)首先使用open()函數(shù)打開文件“小女孩.txt”,把文件的內(nèi)容通過read()方法保存到變量txt中;定義一個字符串變量exclude用來存放標(biāo)點(diǎn)符號。然后用for循環(huán)遍歷txt中的每個字符(word),并使用if條件進(jìn)行判斷,若該字符在變量exclude中,說明該字符為標(biāo)點(diǎn)符號,跳出該循環(huán);否則將該字符作為字典d中的一個鍵,該鍵所對應(yīng)的值置為1,在后面循環(huán)中只要遍歷的字符與該鍵相同,就將該鍵對應(yīng)的值加1。\r\n

ls=list(d.items())表示將字典類型變成列表類型,字典中的每個鍵值對對應(yīng)列表中的一個元組。隨后,對列表ls中的元組進(jìn)行排序,用到sort()方法,參數(shù)“key=lambda.x:x[1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個元組,x只是臨時起的一個名字,也可以使用任意的名字;x[1]表示以元組中第二個元素排序。sort()方法的第二參數(shù)表示是按哪種方式排序,若為“reverse=True”表示按降序排序;若該參數(shù)缺省或“reverse=False”,表示按升序排序。\r\n

排序后,列表ls中第一個元組中即為頻次最高的中文字符和頻次,ls[0][0]表示該字符,ls[0][1]表示其頻次,將這兩個元素通過“:”連接寫入文件“PY301—1.txt”中。\r\n

(2)問題2和問題1的區(qū)別在于統(tǒng)計(jì)的字符包含標(biāo)點(diǎn)符號,因此不需要設(shè)置字符串變量exclude和使用if條件語句進(jìn)行判斷;題目要求不包含回車符,因此需要使用del刪除字典d中鍵為”\n”的元素。最后要無間隔輸出前10個頻次最高的字符,需要對排序好的列表ls進(jìn)行for循環(huán)遍歷,找到前10個元組的第一個元素,并將其直接寫入到文件“PY301—2.txt”中。\r\n

(3)問題3和問題2的區(qū)別在于統(tǒng)計(jì)的字符中不能包含空格,因此需要使用del刪除字典d中鍵為空格的元素。最后要將所有字符和其頻次輸出,需要對排序好的列表ls進(jìn)行for循環(huán)遍歷,遍歷列表中的每個元組,并將元組中的兩個元素通過“:”連接,再用逗號分隔每個字符寫入到文件“小女孩一頻次排序.txt”中。

52.fi=open(“論語.txt'”r”)fo=open(”論語-原文.txt”,”w”)Flag=falseforlineinfi:If”【“inline:Flag=falseIf”【原文】”inline:Flag=tureContinueIffiag=ture:fo.write(line.lstrip())Fi.close()Fo.close()fi=open("論語-原文.txt"’r’)fo=open("論語-提純原文.txt”,’w’)forlineinfi:Foriinrange(1,23):line=line,replace(“{}”.format(i),””)fowrite(line)Fi.close()Fo.close()(1)題目要求從“論語.txt”文件中提取內(nèi)容,輸出保存到文件“論語-原文.txt”中,因此需要用”r”模式打開“論語”txt”,用”\r\nw”模式創(chuàng)建文件“論語-原文.txt”。本題要求區(qū)域性提取,與單行提取不同,因此,可以借助寫標(biāo)記flag來標(biāo)記操作的是哪里的文本。使用for循環(huán)遍歷“論語.txt”中的每一行,當(dāng)該行存在時,說明已經(jīng)到了新的區(qū)域,寫標(biāo)記設(shè)置為否,即flag\r\n=False;當(dāng)該行存在【原文】時,寫標(biāo)記設(shè)置為True;當(dāng)寫標(biāo)記為True時,就將當(dāng)前行內(nèi)容寫入新的文件”論語-原文.txt"中。對文件操作完成后,使用close()方法關(guān)閉文件。(2)題目要求對“論語-原文.txt”進(jìn)一步提純,保存為“論語-提純原文.txt”文件,因此需要用”r”模式打開“論語-原文.txt”,用”\r\nw”模式創(chuàng)建文件“論語-提純原文.txt”。題目要求去掉每行文字中所有圓括號及內(nèi)部數(shù)字,可在for循環(huán)遍歷“論語-原文.txt”文件中的每一行時,用空格來代替出現(xiàn)的“(數(shù)字)”形式。分析“論語-原文.txt”文件可知,其中出現(xiàn)(1)~(22)共22種可能,因此內(nèi)部嵌套for循環(huán)需要從1遍歷到22,構(gòu)造(i)并替換。替換后將該行內(nèi)容寫入文件“論語-提純原文.txt”中。對文件操作完成后,使用close()方法關(guān)閉文件。

53.s=input()\r\nprint(”{:=>25}”.format(eval(s)))該題目主要考查Python字符串的格式化方法。Python語言推薦使用.format()格式化方法,其使用方式如下:\r\n

<模板字符串>.format(<逗號分隔的參數(shù)>)\r\n

其中,模板字符串是一個由字符串和槽組成的字符串,用來控制字符串和變量的顯示效果。槽用大括號({})表示,對應(yīng)format()方法中逗號分隔的參數(shù)。如果模板字符串中有多個槽,可以通過format()參數(shù)的序號在模板字符串槽中指定參數(shù)的使用,參數(shù)從0開始編號。例如:\r\n”{0}日:學(xué)而不思則罔,思而不學(xué){1}。”.format(”孔子”,”則殆”)\r\n

其結(jié)果為:’孔子日:學(xué)而不思則罔,思而不學(xué)則殆?!痋r\n

format()方法的槽除了包括參數(shù)序號,還可以包括格式控制信息,語法格式如下:\r\n

{<參數(shù)序號>:<格式控制標(biāo)記>}\r\n其中,格式控制標(biāo)記包括:<填充><對齊><寬度><,><.精度><類型>6個字段,由引導(dǎo)符號(:)作為引導(dǎo)標(biāo)記,這些字段都是可選的,可以組合使用。\r\n

<填充>:指用于填充的單個字符。\r\n

<對齊>:分別使用<、>和^三個符號表示左對齊、右對齊和居中對齊。\r\n<寬度>:當(dāng)前槽的

溫馨提示

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

最新文檔

評論

0/150

提交評論