![安徽省滁州市全國計算機等級考試Python語言程序設(shè)計專項練習(含答案)_第1頁](http://file4.renrendoc.com/view/471eab435241104cd706ffa109db0464/471eab435241104cd706ffa109db04641.gif)
![安徽省滁州市全國計算機等級考試Python語言程序設(shè)計專項練習(含答案)_第2頁](http://file4.renrendoc.com/view/471eab435241104cd706ffa109db0464/471eab435241104cd706ffa109db04642.gif)
![安徽省滁州市全國計算機等級考試Python語言程序設(shè)計專項練習(含答案)_第3頁](http://file4.renrendoc.com/view/471eab435241104cd706ffa109db0464/471eab435241104cd706ffa109db04643.gif)
![安徽省滁州市全國計算機等級考試Python語言程序設(shè)計專項練習(含答案)_第4頁](http://file4.renrendoc.com/view/471eab435241104cd706ffa109db0464/471eab435241104cd706ffa109db04644.gif)
![安徽省滁州市全國計算機等級考試Python語言程序設(shè)計專項練習(含答案)_第5頁](http://file4.renrendoc.com/view/471eab435241104cd706ffa109db0464/471eab435241104cd706ffa109db04645.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
安徽省滁州市全國計算機等級考試Python語言程序設(shè)計專項練習(含答案)學校:________班級:________姓名:________考號:________
一、單選題(30題)1.下面描述錯誤的是()。
A.對象一定有標識B.對象一定有屬性和方法(或操作)C.對象具有封裝性D.不同對象的同一屬性一定有相同的屬性值
2.以下關(guān)于函數(shù)的定義與編寫的描述,錯誤的是()。
A.函數(shù)是代碼復用的一種方式
B.在Python中,使用關(guān)鍵字define定義函數(shù)
C.定義函數(shù)時,即使函數(shù)不需要接收任何參數(shù),也必須保留空的圓括號來表示這是一個函數(shù)
D.編寫函數(shù)時,一般建議先對參數(shù)進行合法性檢查,然后再進行編寫
3.下面屬于“對象”成分之一的是()。
A.封裝B.規(guī)則C.屬性D.繼承
4.在Python中,用來安裝第三方庫的工具是()。
A.installB.pipC.PyQt5D.pyinstaller
5.軟件按功能可以分為應用軟件、系統(tǒng)軟件及支撐軟件(或工具軟件)。下面屬于應用軟件的是()。
A.編譯程序B.操作系統(tǒng)C.教務管理系統(tǒng)D.匯編程序
6.以下關(guān)于Python的描述中,正確的是()。A.條件4<=5<=6是合法的,輸出False
B.條件4<=5<=6是不合法的
C.條件4<=5<=6是合法的,輸出True
D.條件4<=5<=6是不合法的,拋出異常
7.如果文件a.txt在目錄’C:\\A’下,執(zhí)行以下代碼會發(fā)生什么操作?()importosos.rmdir(r'C:\\A’)
A.刪除文件夾A,保留文件a.txt
B.刪除文件夾A和文件a.txt
C.刪除文件a.txt,保留文件夾A
D.OSError
8.在Python中,可以作為源文件擴展名的是()。
A.pdfB.docxC.pngD.py
9.如果一個函數(shù)沒有return語句,調(diào)用它后的返回值為()
A.0B.TrueC.FalseD.None
10.下面關(guān)于Python中模塊導入的說法錯誤的是()。
A.Python中,可以使用import語句將一個源代碼文件作為模塊導入
B.在系統(tǒng)導入模塊時,會創(chuàng)建一個名為源代碼的文件的對象,該對象引用模塊的名字空間,即可通過這個對象訪問模塊中的函數(shù)和變量
C.import語句可在程序的任何位置使用,可以在程序中多次導入統(tǒng)一模塊,每次導入該模塊時都會將該模塊中的代碼執(zhí)行一次
D.模塊導入時可以使用as關(guān)鍵字來改變模塊的引用對象名字
11.設(shè)棧與隊列初始狀態(tài)為空。將元素A,B,C,D,E,F(xiàn),G,H依次輪流入棧和入隊,然后依次輪流退隊和出棧,則輸出序列為()。
A.G,B,E,D,C,F(xiàn),A,H
B.B,G,D,E,F(xiàn),C,H,A
C.D,C,B,A,E,F(xiàn),G,H
D.A,B,C,D,H,G,F(xiàn),E
12.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。
A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA
13.以下程序的輸出結(jié)果是()。s=[4,2,9,1]s.insert(3,3)print(s)
A.[4,2,9,1,2,3]B.[4,3,2,9,1]C.[4,2,9,2,1]D.[4,2,9,3,1]
14.表達式divmod(40,3)的結(jié)果是()。
A.13,1B.(13,1)C.13D.1
15.以下程序的輸出結(jié)果是()。forcin’PythonNCRE’:ifc==’N’:breakprint?
A.無輸出B.PythonC.PythoD.PythonCRE
16.以下關(guān)于字符串的描述正確的是()。
A.字符應視為長度為1或2的字符串
B.字符串的字符可進行數(shù)學運算,但進行數(shù)學運算的字符必須為數(shù)字
C.在三引號字符串中可包含換行、回車等特殊的字符
D.字符串可以進行切片并賦值
17.用Pylnstaller工具把Python源文件打包成一個獨立的可執(zhí)行文件,使用的參數(shù)是()。
A.-LB.-C.-FD.-i
18.以下程序Dog類中的__init__()方法共包含幾個形參()。ClassDog(): def__init__(self,name,age) =name self.age=age
A.0個B.1個C.2個D.3個
19.一間宿舍可住多個學生,則實體宿舍和學生之間的聯(lián)系是()。
A.—對一B.—對多C.多對一D.多對多
20.在Python中,關(guān)于數(shù)據(jù)類型的描述錯誤的是()。
A.整數(shù)的書寫格式支持十進制、二進制、八進制和十六進制
B.如果想知道參數(shù)的數(shù)據(jù)類型,可以使用type()函數(shù)獲得
C.整數(shù)、浮點數(shù)、復數(shù)和布爾值都是Python的基本數(shù)據(jù)類型
D.浮點數(shù)是帶有小數(shù)的數(shù)字,它存在范圍的限制,如果計算結(jié)果超出上限和下限的范圍不會報錯,但會有warning的警告
21.生成一個k比特長度的隨機整數(shù)的函數(shù)是()。
A.random.choice(k)
B.random.shuffle(k)
C.random.getrandbits(k)
D.random.sample(k)
22.用鍵盤輸入數(shù)字5,以下代碼的輸出結(jié)果是()。n=eval(input("請輸入一個整數(shù):"))s=0ifn>=5:n-=1s=4ifn<5:n-=1s=3print(s)
A.4B.3C.0D.2
23.下面代碼的輸出結(jié)果是()。n=2deff(a):n=bool(a-2)returnnb=f(2)print(n,b)
A.20
B.0True
C.2False
D.0False
24.以下不屬于Python語言控制結(jié)構(gòu)的是()。
A.順序結(jié)構(gòu)B.循環(huán)結(jié)構(gòu)C.分支結(jié)構(gòu)D.數(shù)據(jù)結(jié)構(gòu)
25.執(zhí)行以下代碼的結(jié)果是?A.20B.24C.30D.33
26.以下關(guān)于二進制整數(shù)的定義,正確的是()。
A.081014B.0b1010C.0B1019D.ObC3F
27.給以下程序填空,能輸出{0:[90,‘Aele’],1:[87,‘Bob’],2:[93,‘lala’]!結(jié)果的選項是()。x=[90,87,93]y=(“Aele”,“Bob”,“l(fā)ala”)z={}foriinrange(len(x)): ________ print(z)
A.z[i]=[x[i],y[i]]
B.z[i]=x[i],y[i]
C.z[i]=list(zip(x,y))
D.z[i]=x,y
28.Python中文件的打開模式為‘t’,對應的文件打開模式為()。
A.只讀模式B.只寫模式C.文本文件模式D.二進制文件模式
29.以下關(guān)于Python二維數(shù)據(jù)的描述中,錯誤的是()。
A.表格數(shù)據(jù)屬于二維數(shù)據(jù),由整數(shù)索引的數(shù)據(jù)構(gòu)成
B.二維數(shù)據(jù)由多條一維數(shù)據(jù)構(gòu)成,可以看作一維數(shù)據(jù)的組合形式
C.一種通用的二維數(shù)據(jù)存儲形式是CSV格式
D.CSV格式每行表示一個一維數(shù)據(jù),用英文半角逗號分隔
30.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)
A.0x452B.breakC.553D.”0x452//2”
二、判斷題(10題)31.安裝Python擴展庫時只能使用pip工具在線安裝,如果安裝不成功就沒有別的辦法了。
A.是B.否
32.在Python3.x中可以使用中文作為變量名。
A.是B.否
33.假設(shè)random模塊已導入,那么表達式random.sample(range(10),7)的作用是生成7個不重復的整數(shù)。
A.是B.否
34.元組是不可變的,不支持列表對象的inset()、remove()等方法,也不支持del命令刪除其中的元素,但可以使用del命令刪除整個元組對象。
A.是B.否
35.已知x為非空列表,那么表達式sorted(x,reverse=True)==list(reversed(x))的值一定是True。
A.是B.否
36.執(zhí)行語句frommathimportsin之后,可以直接使用sin()函數(shù),例如sin(3)。A.是B.否
37.在循環(huán)中continue語句的作用是跳出當前循環(huán)。
A.是B.否
38.對于帶有else子句的循環(huán)語句,如果是因為循環(huán)條件表達式不成立而自然結(jié)束循環(huán),則執(zhí)行else子句中的代碼。
A.是B.否
39.文件對象是可以迭代的。
A.是B.否
40.在Python中定義函數(shù)時不需要聲明函數(shù)參數(shù)的類型。
A.是B.否
三、填空題(10題)41.語句sorted([1,2,3],reverse=True)==reversed([1,2,3])執(zhí)行結(jié)果為_________。
42.表達式len('abcdefg'.ljust(3))的值為_________。
43.已知x=3,并且id(x)的返回值為496103280,那么執(zhí)行語句x+=6之后,表達式id(x)==496103280的值為___________。
44.表達式callable(int)的值為___________。
45.表達式re.search(r'\w*?(?P\b\w+\b)\s+(?P=f)\w*?','Beautifulisisbetterthanugly.').group(0)的值為___________。
46.已知x=3和y=5,執(zhí)行語句x,y=y,x后x的值是____。
47.正則表達式模塊re的______________方法用來在整個字符串中進行指定模式的匹配。
48.已知x是一個列表對象,那么執(zhí)行語句y=x[:]之后表達式id(x)==id(y)的值為___________。
49.已知a=[1,2,3]和b=[1,2,4],那么id(a[1])==id(b[1])的執(zhí)行結(jié)果為___________。
50.如果函數(shù)中沒有return語句或者return語句不帶任何返回值,那么該函數(shù)的返回值為_________________。
四、操作題(3題)51.考生文件夾下存在3個Python源文件,分別對應3個問題;1個文本文件,作為本題目的輸入數(shù)據(jù),請按照源文件內(nèi)部說明修改代碼,實現(xiàn)以下功能?!顿u火柴的小女孩》是丹麥童話故事作家安徒生寫的一篇童話故事,發(fā)表于1846年。主要講了一個賣火柴的小女孩在富人闔家歡樂、舉杯共慶的大年夜凍死在街頭的故事。這里給出《賣火柴的小女孩》的一個網(wǎng)絡(luò)版本文件,文件名為“小女孩.txt”。問題1:在“PY301-1.py”文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,輸出頻次最高的中文字符(不包含標點符號)及其頻次,字符與頻次之間采用英文冒號(:)分隔,將輸出結(jié)果保存在考生文件夾下,命名為“PY301-l.txt”。示例格式如下。的:83試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#請在處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準…fo=open("PY301-1.txt","w")d={}fo.write("{}:{}".format(_____))fo.close()問題L在“PY301-2.Py”文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,按照頻次由高到低,輸出前10個頻次最高的字符,不包含回車符,字符之間無間隔,連續(xù)輸出,將輸出結(jié)果保存在考生文件夾下,命名為“PY301-2.txt”。示例格式如下。,的一...(共10個字符)試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準fo=open("PY301-2.txt",”w”)…d={}…Is=list(d.items())ls.sort(key=lambdax:x[l],reverse=True)#此行可以按照字符頻次由高到低排序…問題3:在PY301-3.py文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,將所有字符按照頻次從高到低排序,字符包括中文、標點、英文等,但不包含空格符和回車符。將排序后的字符及頻次輸出到考生文件夾下,文件名為“小女孩-頻次排序.txt”。字符與頻次之間采用英文冒號(:)分隔,各字符之間采用英文逗號(,)分隔,參考CSV格式,最后無逗號,文件內(nèi)部示例格式如下。著:30,那:29,火:29試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準…d={}…Is=list(d.items())Is.sort(key=lambdax:x[1]#reverse=True)#此行可以按照字符頻次由高到低排序
52.考生文件夾下存在一個文件“PY301.py”,該文件是本題目的代碼提示框架,其中代碼可以任意修改。請按照源文件內(nèi)部說明修改代碼,實現(xiàn)以下功能。設(shè)計一個猜字母的程序,程序隨機給出26個小寫字母中的一個,答題者輸入猜測的字母,若輸入的不是26個小寫字母之一,讓用戶重新輸入;若字母在答案之前或之后,程序給出相應正確提示;若答錯5次,則答題失敗并退出游戲;若回答正確,程序輸出回答次數(shù)并退出游戲。試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#請在_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準
53.考生文件夾下存在一個文件“PY201.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。使用turtle庫中的pencolor()和fillcolor()方法為圖形著色(畫筆顏色為黑色,填充顏色為紅色),使用set-up()方法在桌面(400,400)的位置創(chuàng)建600像素×600像素的畫布窗體,效果如下所示。試題程序#請在_____處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,400,400)hideturtle()_____(1)_____('black')_____(2)_____("red")pensize(2)begin_fill()left(140)forward(111.65)curvemove()left(120)curvemove()forward(111.65)end_fill()penup()goto(-27,85)pendown()done()
參考答案
1.D屬性即對象所包含的信息,它在設(shè)計對象時確定,一般只能通過執(zhí)行對象的操作來改變。不同對象的同一屬性可以具有相同或不同的屬性值。例如,張三的年齡是20,李四的年齡是18,張三、李四是兩個不同的對象,他們共同的屬性”年齡”的值不同。
2.B在Python中,使用關(guān)鍵字def定義函數(shù)。本題選擇B選項。
3.C面向?qū)ο蠓椒ㄖ械膶ο笥蓛刹糠纸M成:①數(shù)據(jù),也稱為屬性,即對象所包含的信息,表示對象的狀態(tài);②方法,也稱為操作,即對象所能執(zhí)行的功能、所能具有的行為。本題選擇C選項。
4.B在Python中,使用pip工具來安裝和管理Python第三方庫,pip屬于Python的一部分。本題選擇B選項。
5.C編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有教務管理系統(tǒng)才是應用軟件。本題選擇C選項。
6.C判斷條件4<=5<=6是成立的,故輸出True。本題選擇C選項。
7.D使用rmdir()刪除目錄之前要先清除其中所有的文件,否則會報OSError錯誤。
8.DPython源文件的擴展為py。本題選擇D選項。
9.D
10.Cimport語句確實可以在程序的任何位置使用,但是當在程序中多次導入同一個模塊時,該模塊中的代碼僅僅在該模塊被首次導人時執(zhí)行,所以C項錯誤。
11.B棧是先進后出的線性表,隊列是先進先出的線性表。將元素A,B,C,D,E,F(xiàn),G,H依次輪流人棧和入隊,這時棧中的元素為ACEG,隊列中的元素為BDFH;然后依次輪流退隊和出棧,即隊列中B元素退隊,然后棧中G元素出棧,隊列中D元素退隊,棧中E元素出棧,以此順序,完成所有元素退隊和出棧,則輸出序列為B,G,D,E,F(xiàn),C,H,A。本題選擇B選項。
12.B解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入的元素。這表明棧的運算規(guī)則是“先進后出”(或稱“后進先出”)。在棧頂進行插入運算,稱為進棧(或入棧),在棧頂進行刪除運算,稱為退棧(或出棧)。本題中,依次進棧,即依次插入元素1、2、3、4、5、A、B、C、D、E,依次出棧,即依次刪除元素,根據(jù)?!跋冗M后出”的規(guī)則,應該以倒序出棧。即元素出棧順序為EDCBA54321。
13.D在Python中,想要在列表中的任意位置插入元素,一般使用insert()方法。insert()方法有兩個參數(shù):第一個參數(shù)代表在列表中的位置,第二個參數(shù)是在這個位置處插入的元素。注意:插入時,元素被插入該位置之前。列表索引從0開始,s=[4,2,9,1],s[3]=1,則執(zhí)行s.insert(3,3)后,s=[4,2,9,3,1],最后print(s)。本題選擇D選項。
14.Bdivmod(x,y)函數(shù)用來計算x和y的除余結(jié)果,返回兩個值,分別是:x與y的整數(shù)除,即x//y,以及x與y的余數(shù),即x%y。返回的兩個值組成了一個元組類型,即小括號包含的兩個元素(x//y,x%y)。40//3=13,40%3=1,故答案為B項。
15.A本題中,break語句出現(xiàn)在print語句之前,當if的條件為True時,執(zhí)行break語句,跳出for循環(huán),不再執(zhí)行循環(huán)體中break后面的語句,故無輸出。
16.C字符應視為長度為1的字符串;字符串中的字符不可以進行數(shù)學運算,如果是數(shù)字字符串,則需要將其轉(zhuǎn)換為數(shù)值類型方可計算;字符串可進行切片,但不能賦值。本題選擇C選項。
17.CPylnstaller工具沒有-L參數(shù);-D是默認值,生成dlst目錄;-F是指在dlst文件夾中只生成獨立的打包文件;-i是指定打包程序使用的圖標文件。本題選擇C選項。
18.D__init__()方法是一個特殊的方法,每當根據(jù)類創(chuàng)建新實例時,Python就會自動運行該方法。該方法的開頭和結(jié)尾各有兩個下劃線,這是一種約定,旨在避免Python的默認方法和普通方法發(fā)生命名沖突。self、name、age都是__init__()方法的形參,所以共3個。本題選擇D選項。
19.B因為一間宿舍可以住多個學生即多個學生住在一個宿舍中,但一個學生只能住一間宿舍,所以實體宿舍和學生之間是一對多的關(guān)系。本題選擇B選項。
20.D浮點數(shù)的取值范圍在一10308到10308之間,浮點數(shù)之間的區(qū)分精度約為2.22×10-16。對于除高精度科學計算外的絕大部分運算來說,浮點數(shù)類型的數(shù)值范圍和小數(shù)精度足夠“可靠”,一般認為浮點數(shù)類型沒有范圍限制。如果計算結(jié)果超出上限和下限的范圍會產(chǎn)生溢出錯誤。
21.Crandom.choice(k)用于從序列的元素中隨機挑選一個元素;random.shuffle(k)用于將序列的所有元素隨機排序;random.getrandbits(k)用于生成一個k比特長度的隨機整數(shù);random.sample(k)用于隨機地從指定列表中提取出k個不同的元素。本題選擇C選項。
22.B輸入5,因為n=5滿足第一個if條件,所以11=11-1,11=4,8=4;由于現(xiàn)在11=4,滿足第二個if條件,所以執(zhí)行11=\n11-1,11=3,8=3。Print(s),輸出3。本題選擇B選項。
23.C這段代碼是全局變量、局部變量以及Python內(nèi)置函數(shù)bool()的一個結(jié)合。在函數(shù)內(nèi)部的局部變量名和函數(shù)外部全局變量名相同時,調(diào)用函數(shù)時,總是先找到函數(shù)內(nèi)部的局部變量名,所以當a為2時,經(jīng)過布爾型轉(zhuǎn)換之后的a\r\n-2,即b為False,而在函數(shù)外部只能訪問全局變量名,所以n仍為2,本題選擇C選項。
24.DPython語言控制結(jié)構(gòu)包括順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)。
25.D
26.B二進制整數(shù)以0b開頭,后面跟二進制數(shù)0和1。A、C、D三項中有4、9、C、3、F,這些都不是二進制數(shù)。
27.A由最后輸出的字典可以看出,它由0、1、2作鍵,列表x的元素作為每個值的第一個元素,元組y的元素作為每個值的第二個元素,即字典z中鍵i對應的值為[x[i],y[i]]。本題選擇A選項。
28.C在Python中,文件的打開模式對應為:“r”表示只讀模式;“w”表示只寫模式;“t”表示文本文件模式;“b”表示二進制文件模式。本題選擇C選項。
29.A二維數(shù)據(jù)也稱表格數(shù)據(jù),由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成,A項錯誤。二維數(shù)據(jù)由多個一維數(shù)據(jù)構(gòu)成,可以看作是一維數(shù)據(jù)的組合形式,B項正確。CSV是二維數(shù)據(jù)的存儲格式,C項正確。CSV格式的每行是一維數(shù)據(jù),用英文逗號分隔,D項正確。
30.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是十六進制數(shù),對2整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選C選項。
31.N
32.Y
33.Y
34.Y
35.N
36.Y
37.N
38.Y
39.Y
40.Y
41.False
42.7
43.False
44.True
45.'isis'
46.5
47.search()
48.False
49.True
50.None
51.(1)fi=open("小女孩.txt","r")fo=open(”PY301—1.txt”,”w”)txt=fi.read()d={}\r\nexclude=",。!?、()【】<>《》=:+-*-“”…"forwordintxt:ifwordinexclude:continueelse:d[word]=d.get(word,0)+1ls=list(d.items())ls.sort(key=lambda\r\nx:x[1],reverse=True)fo.write(”{}:{}”format(ls[0][0],ls[0][1]))fo.close()(2)fi=open("小女孩.txt","r")fo=open(”PY301—2.txt”,”w”)txt=fi.read()d={}forwordintxt;d[word]=d.get(word,0)+1deld["\\n"]ls=list(d.items())ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序foriinrange(10);fo.write(ls[i][0])fi.close()fo.close()(3)fi=open("小女孩.txt","r")fo=open(小女孩-頻次排序。txt","w")txt=fi.read()d={}forwordintxtd[word]=d.get(word,0)+1deld[""]deld["\\n"]ls=list(d.items())ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序foriin\r\nrange(len(ls)):ls[i]="{}:{}".format(ls[i][0],ls[i][1])fo.write(",".join(ls))fi.close()fo.close()(1)首先使用open()函數(shù)打開文件“小女孩.txt”,把文件的內(nèi)容通過read()方法保存到變量txt中;定義一個字符串變量exclude用來存放標點符號。然后用for循環(huán)遍歷txt中的每個字符(word),并使用if條件進行判斷,若該字符在變量exclude中,說明該字符為標點符號,跳出該循環(huán);否則將該字符作為字典d中的一個鍵,該鍵所對應的值置為1,在后面循環(huán)中只要遍歷的字符與該鍵相同,就將該鍵對應的值加1。ls=list(d.items())表示將字典類型變成列表類型,字典中的每個鍵值對對應列表中的一個元組。隨后,對列表ls中的元組進行排序,用到sort()方法,參數(shù)“key=lambda.x:x[1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個元組,x只是臨時起的一個名字,也可以使用任意的名字;x[1]表示以元組中第二個元素排序。sort()方法的第二參數(shù)表示是按哪種方式排序,若為“reverse=True”表示按降序排序;若該參數(shù)缺省或“reverse=False”,表示按升序排序。排序后,列表ls中第一個元組中即為頻次最高的中文字符和頻次,ls[0][0]表示該字符,ls[0][1]表示其頻次,將這兩個元素通過“:”連接寫入文件“PY301—1.txt”中。(2)問題2和問題1的區(qū)別在于統(tǒng)計的字符包含標點符號,因此不需要設(shè)置字符串變量exclude和使用if條件語句進行判斷;題目要求不包含回車符,因此需要使用del刪除字典d中鍵為”\\n”的元素。最后要無間隔輸出前10個頻次最高的字符,需要對排序好的列表ls進行for循環(huán)遍歷,找到前10個元組的第一個元素,并將其直接寫入到文件“PY301—2.txt”中。(3)問題3和問題2的區(qū)別在于統(tǒng)計的字符中不能包含空格,因此需要使用del刪除字典d中鍵為空格的元素。最后要將所有字符和其頻次輸出,需要對排序好的列表ls進行for循環(huán)遍歷,遍歷列表中的每個元組,并將元組中的兩個元素通過“:”連接,再用逗號分隔每個字符寫入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加工安裝服務合同范本
- 別墅家具購買合同范本
- 公司舊車銷售合同范例
- 乙方工地材料合同范例
- 養(yǎng)生館共享店鋪合同范例
- 電源防雷插座板行業(yè)深度研究報告
- 中國電動拉鉚槍項目投資可行性研究報告
- led設(shè)備購買合同范本
- 制種水稻合同范本
- 公司外聘員工合同范例
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023版押品考試題庫必考點含答案
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質(zhì)量驗收規(guī)范檢驗批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產(chǎn)檢查表
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評估報告
- 心有榜樣行有力量 -從冬奧冠軍徐夢桃身上感受青春奮斗初中主題班會
- GB/T 3860-1995文獻敘詞標引規(guī)則
- 七年級英語下冊閱讀理解10篇
- 設(shè)計質(zhì)量、進度保證措施
評論
0/150
提交評論