python二级模拟题

PYTHON二级模拟题

一、选择题(每题1分,总分40分)

1、下列叙述中正确的是()
A、算法的时间复杂度是指算法在执行过程中基本运算的次数
B.算法的时间复杂度是指算法执行所需要的时间
C、算法的时间复杂度是指算法执行的速度
D、算法复杂度是指算法控制结构的复杂程度
A 【解析】算法的时间复杂度是指执行算法所需要的计算工作量,其计算工作量是用算法所执行的基本运算次数来度量的。本题选择A选项。

2、下列叙述中正确的是()
A、循环队列是队列的一种链式存储结构
B、循环队列是队列的一种顺序存储结构
C、循环队列中的队尾指针一定大于队头指针
D、循环队列中的队尾指针一定小于队头指针
B 【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式。当循环队列满或者为空时:队尾指针-队头指针。本题选择B选项。

3、某完全二叉树有256个结点,则该二叉树的深度为()。
A. 7 
B.8
C.9 
D.10
c 【解析】根据完全二叉树的性质:具有n个结点的完全二叉树的深度为[log,nj+1,本题中完全二叉树共有256个结点,则深度为iloa-2561+1-8+1-9,本题选择C选项。

4、下列叙述中错误的是()。
A.线性结构也能采用链式存储结构
B、线性结构一定能采用顺序存储结构
C、有的非线性结构也能采用顺序存储结构
D、非线性结构一定不能采用顺序存储结构
D 【解析】满二叉树与完全二叉树均为非线性结构,但可以按照层次进行顺序存储。本题选择D选项。

5、需求分析的主要任务是()。
A.确定软件系统的功能
B、确定软件开发方法
C、确定软件开发工具
D、确定软件开发人员
A 【解析】需求分析是软件开发之前必须要做的准备工作之一。需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。故需求分析的主要任务是确定软件系统的功能。本题选择A选项。

6、一个模块直接调用的下层模块的数目称为模块的()。
A、扇入数
B、扇出数
C、宽度
D、作用域B 【解析】扇入数指调用一个给定模块的模块个数。扇出数是指由一个模块直接调用的其他模块数,即一个模块直接调用的下层模块的数目。本题选择B选项。

7、将数据和操作置于对象统一体中的实现方式是()。
A.隐藏
B、抽象
C、封装
D、结合
C 【解析】对象具有封装性,从外面看只能看到对象的外部特性,对象的内部对外是封闭的。即封装实现了将数据和操作置于对象统一体中。本题选择C选项。

8、采用表结构来表示数据及数据间联系的模型是()。
A.层次模型
B.概念模型
C、网状模型.
D.关系模型
D 【解析】关系模型采用二维表来表示,简称表。本题选择D选项。

9、在供应关系中,实体供应商和实体零件之间的联系是()。
A、多对多
B.-对一
C、多对一
D、一对多
A 【解析】-家供应商可提供多种零件,一种零件也可被多家供应商提供。所以实体供应商和实体零件之间的联系是多对多。本题选择A选项。

10、如果定义班级关系如下:班级(班级号,总人数,所属学院,班级学生)则使它不满足第一范式的属性是()。A、班级号B班级学生C、总人数D、所属学院B 【解析】对于关系模式,若其中的每个属性都已不能再分为简单项,则它属于第一范式模式。题目中“班级"关系的"班级学生”属性,还可以进行再分,如学号、姓名、性别、出生日期等,因此不满足第一范式。本题选择B选项。

11、在Python语言中,不能作为变量名的是()。
A. student
B. bmg
C. 5sp
D. Teacher
c 【解析】在Python中,变量名的命名规则:以字母或下划线开头,后面跟字母、下划线和数字;不能以数字开头。本题选择C选项。

12、以下关于Python缩进的描述中,错误的是()。
A、缩进表达了所属关系和代码块的所属范围
B、缩进是可以嵌套的,从而形成多层缩进
C、判断、循环、函数等都能够通过缩进包含一批代码
D. Python用严格的缩进表示程序的格式框架,所有代码都需要在行前至少加一个空格
D 【解析】缩进:在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。这意味着同一层次的语句必须有相同的缩进,不是同一层次的语句不需要缩进。所以不是所有代码行前都要加空格。本题选择D选项。

13、以下代码的输出结果是()。
x= 'R\OSYOT
print(len(x))
A. 3  B.5  C.7   D.6
B 【解析】在Python中len()函数是输出字符串长度,x=R\OSSOT,分别有R,10, S、\0和T5个字符,所以len(x)-5,print(len(x))是将5打印出来。这里要注意, Python中len0函数遇见"0不结束, "0算是一个转义字符。本题选择B选项。

14、以下关于Python语言技术特点的描述中,错误的是()。
A、对于需要更高执行速度的功能,例如数值计算和动画, Python语言可以调用C语言编写的底层代码
B. Python比大部分编程语言具有更高的软件开发产量和简洁性
C. Python语言是解释执行的,因此执行速度比编译型语言慢
D. Python是脚本语言,主要用作系统编程和Web访问的开发语言
D 【解析】 Python是一种解释型高级通用脚本语言,具有通用性,可以用于几乎任何与程序设计相关应用的开发。主要应用于以下几个领域: Web开发,爬虫开发,科学计算,高性能服务器后端,开发界面程序, QT也提供了Python的支持,因为Python的开源库包含了对C/C++ lib库的调用。主要二字太过绝对,因此D选项错误。

15、以下代码的输出结果是()
x=12+ 3 * (5*8)-14)//6
print(x)
A.25.0  B.65  C.25  D.24
C 【解析】在Python中算术运算符" //"来表示整数除法,返回不大于结果的一个最大的整数,而"/"则单纯的表示浮点数除法,返回浮点结果。所以先计算5*8-40,4014-26,26*3-78,78//6-13, 12+13-25,本题选择C选项。

16、以下关于Python循环结构的描述中,错误的是()。
A, break用来结束当前当次语句,但不跳出当前的循环体
B、遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range0)函数等
C, Python通过for, while等保留字构建循环结构
D, continue只结束本次循环
A 【解析】在Python中, break意为结束循环, continue是结束当前循环进入下一个循环。本题选择A选项。

17、以下构成Python循环结构的方法中,正确的是() 。
A, while   B. loop  C, if  D, do...for
A 【解析】 Python中的循环结构有for语句和while语句。if是选择结构语句。本题选择A选项。

18、以下代码绘制的图形是()。
import turtle as t
for i in range(1,7): 
	t.fd(50)
	t.left(60)
A.正方形B、六边形•c、三角形D、五角星
B 【解析】先用import导入turtle库, for循环依次将1-6赋给变量i,分别被依次赋值为1,2,3,4,5,6, fd0是画笔当前的前进方向, left)是画笔移动的角度,故绘制出来的是六边形。本题选择B选项。

19、以下关于Python语言的描述中,正确的是()。
A.条件4<=5<=6是合法的,输出False
B、条件4<-5<-6是不合法的
C、条件4<=5<=6是合法的,输出True
D.条件4<=5<-6是不合法的,抛出异常
c 【解析】判断条件4<=5<-6是成立的,故输出True,本题选择C选项。

20、以下代码的输出结果是()
for i in range(1,6): 
if i%4 == 0:
	continue
else:
	print(i,end =",")
A, 1,2,3,
B, 1,2,3,4,
C, 1,2,3,5,
D.123456
c 【解析】 for循环依次将1-5赋给i,i从1,2,3,4,5依次变化,当194--0时,结束本次循环进入下一循环;反之输出i的值,故输出结果为: 1,2,3,5, 。本题选择C选项。

21、以下代码的输出结果是()。
t=10.5
def above zero(t): 
	return t>0
A, True  B. False  C, 10.5  D、没有输出
D 【解析】在Python语言中, return语句用来结束函数并将程序返回到函数被调用的位置继续执行。return语句可以出现在函数中的任何部分,可以同时将0个、1个或多个函数运算结果返回给函数被调用处的变量。函数可以没有return,此时函数并不返回值。return返回的是值而不是表达式,且此段语句并未调用函数,故程序无输出。本题选择D选项。

22、以下关于Python语言的描述中,正确的是()。
A、函数中return语句只能放在函数定义的最后面
B.定义函数需要使用保留字def
C、使用函数最主要的作用是复用代码
D, Python函数不可以定义在分支或循环语句的内部
B 【解析】函数定义:函数是指一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用其函数名即可。函数主要的作用是提高应用的模块性和代码的重复利用率。C项错误。return语句用来结束函数并将程序返回到函数被调用的位置继续执行。return语句可以出现在函数中的任何部分,可以同时将0个、1个或多个函数运算结果返回给函数被调用处的变量。A项错误。在Python语言中,函数可以定义在分支或循环语句的内部, D项错误。Python语言通过保留字def定义函数,定义语法如下:def <函数名x(<非可选参数列表><可选参数>-<默认值>):
<函数体>return<返回值列表>·可选参数一般都放置在非可选参数的后面。本题选择B选项。

23、以下代码的输出结果是()。
def young(age):
if 25 <= age <= 30:
	print("作为一个老师,你很年轻")
elif age <25:
	print("作为一个老师,你太年轻了")
elif age >= 60:
	print(作为一个老师,你可以退休了")
else:
	print("作为一个老师,你很有爱心")
young(42)
A、作为一个老师,你很年轻
B、作为一个老师,你太年轻了"
C、作为一个老师,你可以退休了
D、作为一个老师,你很有爱心
D 【解析】将实参42传递给函数形参变量age,之后进入多分支结构,依次判断,因为30<42<60,故执行else后面的语句,即输出“作为一个老师,你很有爱心" 。本题选择D选项。

24、以下代码的输出结果是()
def fibRate(n): 
if n <= 0: 
	return -1 
elif n ==1: 
	return -1 
elif n ==2: 
	return 1
else:L=[1,5]
	for i in range(2,n):
	L.append(L[-11+L[-2])
	return L[-21%L[-1]
print(fibRate(7))
A.0.6  B.28  C.-1  D.1
B 【解析】将7传递给函数形参变量n,之后进入多分支结构,依次判断后,执行else后面的语句。
fori句为: foriin range(2,7), i从2依次变化到6,循环5次,将L[-1]+L[-2]的值通过append()方法加入到列表L中。
当i=2时, L[-1]+L[-2]-5+1-6,将6添加到列表L中,此时L=[1,5,6];
当i=3时, L[-1]+L[-2]-6+5-11,将11添加到列表L中,此时L-[1.5,6,11];
当i=4时, L[-1]+L[-2]-11-6-17,将17添加到列表L中,此时L=11,5,6,11,17];
当i=5时, L-1}-L2-1+11-28,将28添加到列表L中,此时L=[1,5,6,11,17,28];
当i=6时, L-1]-L2-2=2817-45,将45添加到列表L中,此时L=[1,5,6,11,17,28,451
最后L[-2]%L[-1]=28%45-28,故程序输出28。本题选择B选项。

25、以下关于函数返回值的描述中,正确的是()。
A, Python函数的返回值使用很灵活,可以没有返回值,可以有一个或多个返回值
B、函数定义中最多含有一个return语句
C、在函数定义中使用return语句时,至少给一个返回值
D、函数只能通过print语句和return语句给出运行结果
A 【解析】在Python语言中, return语句用来结束函数并将程序返回到函数被调用的位置继续执行。return语句可以出现在函数中的任何部分,可以同时将0个、1个或多个函数运算结果返回给函数被调用处的变量。函数可以没有return,此时函数并不返回值。当函数使用return返回多个值时,这些值形成了一个元组数据类型,由小括号和逗号分隔,如(a,b.c),可以使用一个变量或多个变量保存结果。本题选择A选项。

26、以下代码的输出结果是()。
def Hello(famlyName,age): 
if age > 50:
	print("您好! "+famlyName +"奶奶")
elif age > 40:
	print("您好! "+famlyName+"阿姨")
elif age > 30 
	print("您好!"+famlyName+"姐姐")
else:
	print("您好! "+"小"+famlyName)
Hello(age=43, famlyName="赵)
A、您好!赵奶奶
B.您好!赵阿姨
C.您好!赵姐姐
D.函数调用出错
B 【解析】将实参age-43, famlyName="赵"分别赋给形参aqe和famlyName,之后进入多分支结构进行判断,因为40<age-43<50,执行第一个elif后面的语句,用"+"进行字符串连接,故输出“您好!赵阿姨" 。本题选择B选项。

27、以下代码的输出结果是()
ls=[12,3],'python',[14,5, 'ABC'].6],[7,8]]
print(s[2][1)
A, 'ABC"   B, p   C、4  D,6
D 【解析】列表索引序号从0开始,所以Is[2][1]指的是列表中序号为2的元素中序号为1的元素,输出结果是6,本题选择D选项。

28、以下代码的输出结果是()
Is = ["2020", "1903", Python"]
Is.append(2050) 
Is.append([2020, "2020") 
print(ls)
A, [2020', '1903", 'Python', 2020, [2050, "2020]] 
B.[2020, '1903, 'Python', 2020]
C. [2020, '1903', 'Python', 2050, [2020, 2020']]
D. [2020, '1903, "Python', 2050, [2020']]
C 【解析】要向列表中添加元素,可以使用append)方法,添加的元素类型可以不同,可以是数字、字符串、列表等。要注意的是append()方法不能同时添加多个元素。本题选择C选项。

29、以下代码的输出结果是()
d={}"大海"蓝色","天空":"灰色","大地":"黑色"}
print(d["大地"], d.get("天空", "黄色"))
A、黑色黑色   B.黑色灰色  C、黑色黄色  D、黑色蓝色
B 【解析】在Python中,字典是存储可变数量键值对的数据结构,通过字典类型实现映射。
字典使用大括号(建立,每个元素是一个键值对,使用方式: {<键1>:<值1>,<键22:<值2> n:<值n>},
其中,键和值通过冒号连接,不同键值对通过逗号隔开。字典具有和集合类似的性质,即键值对之间没有顺序且不能重复。
d键获取键对应的值, d.get(key,default)方法是用来返回key对应的值,如果字典中不存在该键,则返回默认值。本题选择B选项。

30、以下选项,正确的是()。
A、序列类型是一维元素向量,元素之间存在先后关系,通过序号访问
B、序列类型可以分为3类:字符串、字典和列表
C、表示单一数据的类型被称为组合数据类型
D, Python的str, dict, tuple和list类型都属于序列类型
A 【解析】序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。
Python语言中有很多数据类型是序列类型,其中比较重要的是字符串类型、列表类型和元组类型。
字典是存储可变数量键值对的数据结构,通过字典类型实现映射。
所以字典是映射类型,不是序列类型。B,D两项错误。表示不同数据的类型被称为组合数据类型, C项错误。本题选择A选项。

31、以下代码的输出结果是()。
d={}
for i in range(26):
d[chr(i+ord("A")] = chr((i+13) % 26 + ord("А"))
for c in "Python": 
print(d.get(c, c), end="")
A. Plguba   B. Cabugl  C. Python"  D.Cython
D 【解析】 ord()函数是把字符转换成对应的ASCIl码, chr0函数是ord()函数的逆运算,把ASCI1码转换成对应的字符输出,所以ord("A")为65,第一个for循环的作用是生成键值对存储在字典变量d中。例如,当i-0, dAl-N; i=1, d[B]=0 一直到i-13, dIN]-A,后面的键和值与前面的是互换位置的,如i=14, dj0l=B: i=15, d[Pl=C.。依次循环赋值,直到i-25时结束for循环。第二个for循环的作用是输出字典的值, get(key,default=None)函数有两个参数:第一个参数是字典的键,第二个参数是默认值,作用是返回字典中key对应的值,如果key不存在,则返回默认值,如d=("A":"N","O":"B","Z":"M"1.d.get("A","C")返回的是N,当c="P"时,去字典中查找是否存在键为"P"的值,遍历后存在,所以返回C,for循环继续遍历剩下的字符,在字典中找不到对应的键,则返回默认值,所以结果返回为Cython,本题选择D选项。

32、以下关于Python二维数据的描述中,错误的是()。
A, CSV文件的每一行是一维数据,可以用列表、元组表示
B.从CSV文件获得数据内容后,可以用replace()来去掉每行最后的换行符
C、若一个列表变量里的元素都是字符串类型,则可以用join()合成字符串
D、列表中保存的二维数据,可以通过循环用writelines()写入csV文件
D 【解析】在Python语言中, writelines(方法是将一个元素为字符串的列表整体写入文件; write()方法是向文件写入一个字符串或字节流,每次写入后,将会记录一个写入指针。二维列表对象输出为CSV格式文件采用遍历循环和字符串的join()方法相结合,方法如下:
# ls代表二维列表,此处省略
f=open("cpi.csv","w")
for row in 1s:
f.write(".join(row)+"n") 
f.close()
本题选择D选项。

33、以下关于文件的描述中,错误的是()。
A、文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容
B、可以使用open0打开文件,用close0关闭文件
C、使用read0可以从文件中读入全部文本
D、使用readlines(可以从文件中读入一行文本
D 【解析】文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。A项正确。可以使用open(打开文件,用close0关闭文件, B项正确。在Python语言中,文件读取方法有(设代表文件变量) :
f.read():从文件中读入整个文件内容。
f.readline():从文件中读入一行内容。
f.readines():从文件中读入所有行,以每行为元素形成一个列表。
f.seek():改变当前文件操作指针的位置。c项正确。本题选择D选项。

34、以下关于文件的描述中,正确的是() 。
A、使用open)打开文件时,必须要用或w指定打开方式,不能省略
B、采用readlines0可以读入文件中的全部文本,返回一个列表
C、文件打开后,可以用write0控制对文件内容的读写位置
D、如果没有采用close0关闭文件, Python程序退出时文件将不会自动关闭
B 【解析】使用open(打开文件时,省略打开模式,会默认只读方式打开;
文件打开后,可以用seek)方法控制对文件内容的读写位置, write()方法只是向文件写入一个字符串或者是字节流;
如果没有采用close0关闭文件,程序退出时一般会自动关闭,但有可能会导致数据丢失。本题选择B选项。

35、以下不属于Python文件操作方法的是()。
A, read()   B, write()  C、 join()  D. readline()
C【解析】 Python文件读取方法有: f.reado, f.readline0, f.readlines0、f.seek0, Python文件写入方法有:f.write0, f.writelines0。本题选择C选项。

36、以下关于数据组织的描述中,错误的是()。
A.一维数据采用线性方式组织,可以用Python集合或列表类型表示
B、列表类型仅用于表示一维和二维数据
C、二维数据采用表格方式组织,可以用Python列表类型表示
D、更高维数据组织由键值对类型的数据构成,可以用Python字典类型表示
A 【解析】一维数据采用线性方式组织,在Python语言中主要采用列表形式表示,集合不属于线性结构。
二维数据采用二维表格方式组织,在Python语言中可以采用二维列表形式表示。
高维数据由键值对类型的数据构成,采用对象方式组织,在Python语言中可以采用字典类型表示。
在Python中,列表类型仅用于表示一维和二维数据。本题选择A选项。

37、文件exam.txt与以下代码在同一目录下,其内容是一段文本: bigBen,以下代码的输出结果是()。
f = open("exam.txt") 
print()
f.close)
A, bigBen   B, exam.txt   C, <io.TextiOWrapper...   D, examc 
C【解析】 open)函数打开一个文件,并返回可以操作这个文件的变量f,并且open()函数有两个参数:文件名和打开模式。
本题只是打开了文件,并没有对文件进行操作,因此不会输出文件的内容。print(f)语句输出的是变量代表的文件的相关信息:
< io.TextIOWrapper name='exam.txt'mode='r' encoding='cp936'>若想要输出文件的内容,需要把文件的内容读入,如f1=fread0)。本题选择C选项。

38、不属于Python开发用户界面第三方库的是()。
A, PyGObject
B, PyQt
C, time
D, PyGTK
c 【解析】 PyQt (QT开发库) 、PyGObject和PyGTK(GTK+库)均是Python开发用户界面的第三方库。而time库是Python提供的处理时间标准库。本题选择C选项。

39、不属于Python数据分析及可视化处理第三方库的是0)
A, seaborn   B, random   C. mayavi2   D, numpy
B 【解析】属于Python数据分析及可视化的第三方数据库的有: numpy, scipy, pandas, matplotlib, TVTKmayavi (也称mayavi2)等。
random库是Python语言用于产生各种分布的伪随机数序列的库。本题选择B选项。

40、属于Python用于Web开发第三方库的是()。
A, pygame    B, scipy   C, pdfminer   D. pyramid
D 【解析】属于Web开发方向的Python第三方生态库有:Django, Pyramid, Flask等。 
Pygame属于游戏开发方向, scipy属于数据分析方向, pdfminer属于文本处理方向。本题选择D选项。

二、基本操作题

41.考生文件夹下存在一个文件PY101 py,请写代码替换横线,不修改其他代码,实现以下功能:
键盘输入字符串s,按要求把输出到屏幕,格式要求:宽度为30个字符,星号字符*填充,居中对齐。如果输入字符串超过30,则全部输出。
例如:键盘输入字符串s为"Congratulations",屏幕输出*Congratulations*
【参考答案】
s= input ("请输入一个字符串:")
print (" {:*^30}". format (s))
【解题思路】该题目主要考查Python字符串的格式化方法。字符串的format)格式化方法的使用方法如下: <模板字符串> format(<逗号分隔的参数2)。题目的输出格式为居中对齐、30个字符、星号填充,模板字符串的设计为{
    
    *^30}42.考生文件夹下存在一个文件PY102py,请写代码替换横线,不修改其他代码,实现以下功能:
根据斐波那契数列的定义, F(0)-0, F(1)=1, F(n)-F(n-1)+F(n-2)(n>=2) ,输出不大于50的序列元素。
例如:屏幕输出实例为:0,1,2.3... ()
【参考答案】
a, b=0, 1
while a <= 50: 
    print (a, end=',') 
    a, b = b, a+b
【解题思路】斐波那契数列又被称为黄金分隔数列,这个数列从第三项开始,每一项都等于前两项之和。在Python中可以使用序列赋值方法给多个变量赋值,变量之间使用英文逗号隔开。由题目要求可知不大于50是控制循环的条件。

43.考生文件夹下存在一个文件PY103.py,请写代码替换横线,不修改其他代码,实现以下功能:
键盘输入一句话,用jieba分词后,将切分的词组按照在原话中逆序输出到屏幕上,词组中间没有空格。
示例如下:
输入:我爱老师
输出:老师爱我
【参考答案】
import jieba
txt = input ("请输入一段中文文本:")
Is = jieba. lcut (txt) 
for i in ls[::-1]: 
    print (i, end="")
【解题思路】该题目使用jeba中文分词库对输入的字符串进行分割,然后按照在原话中逆序输出。
jieba库是Python的第三方库,需要导入之后才可以使用。jieba库提供了3种分词模式:
精确模式、全模式和搜索引擎模式。其中精确模式分词的词语拼接没有冗余,是最经常使用的。
精确模式对字符串的分词操作为jiebalcut(txt),该函数返回的是一个列表且列表中每一个元素都是一个中文词语。
最后,把返回的列表中的内容使用列表切片的方法,将其逆序输出。

三、简单应用

44.
在这里插入图片描述

【参考答案】
import turtle
for i in range(3):
    turtle.seth(i*120)
    turtle.fd(100)
【解题思路】题目考查“海龟绘图体系”,绘制简单的等边三角形。使用turtle库之前需要使用import关键字把urtle库导入。由于题目要求使用setho函数,因此,需要在绘制每条边时计算绝对绘制方位,可以利用循环变量计算三个边的绝对角度。

45
在这里插入图片描述

答案

fo = open("PY202.txt","w")
txt = input("请输入类型序列: ")
fruits = txt.split(" ")
d = {
    
    }
for fruie in fruits:
   d[fruit] = d.get(fruit,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True)  # 按照数量排序
for k in ls:
   fo.write("{}:{}\n".format(k[0], k[1]))
fo.close()
【解题思路】“统计元素个数"问题非常适合采用字典类型表达,即构成元素:次数"的键值对。
因此我们可以把输入的数据,构造成一个字典类型存储。创建字典变量d,可以利用“a键]-值”方式为字典增加新的键值对变量。
下面代码是最常用的对元素进行统计的语句:
d[fruit] =d.get(fruit,0) + 1
其作用就是增加元素fuit出现的次数。get0方法获得字典中fuit作为,键对应的值,即fuit出现的次数。如果fuit不存在,则返回0;存在,则返回值。
由于题目要求需要按照数量的多少进行排序输出,因此需要把字典类型转换为列表类型,使用字典的itemso函数返回包含所有键值对的项,使用ist0函数把取出的内容重新构造成一个列表。
列表中的每个元素都是一个键值对形式的元组。最后,使用sorto函数按照每个元组中序号为1的元素进行降序排列输出。

四、综合应用

46.
在这里插入图片描述

PY301-1.PY

# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
...
fo = open("PY301-1.txt","w")
...
d = {}
...
fo.write("{}:{}".format(______))
fo.close()

PY301-2.PY

# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准

...
fo = open("PY301-2.txt","w")
...
d = {
    
    }
...
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
...

PY301-3.PY

# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准

...
d = {
    
    }
...
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
...

在这里插入图片描述

答案

# (1)
fi = open("小女孩.txt",'r')
fo = open('PY301-1.txt','w')
txt = fi.read()
d = {
    
    }
exclude = ", 。 ! ? 、 () 【】 《》 = : +——“” …… "
for word in txt:
    if word in exclude:
        continue
    else:
        d[word] = d.get(word,0) + 1
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse = True)
fo.write("{}:{}".format(ls[0][0],ls[0][1]))
fo.close()
fi.close()

# (2)
fi = open("小女孩.txt",'r')
fo = open('PY301-2.txt','w')
txt = fi.read()
d = {
    
    }
for word in txt:
    d[word] = d.get(word,0) + 1
del d["\n"]
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse = True)
for i in range(10):
    fo.write(ls[i][0])
fo.close()
fi.close()

# (3)
fi = open("小女孩.txt",'r')
fo = open('PY301-3.txt','w')
txt = fi.read()
d = {
    
    }
for word in txt:
    d[word] = d.get(word,0) + 1
del d[" "]
del d["\n"]
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse = True)
for i in range(len(ls)):
    ls[i] = "{}:{}".format(ls[i][0],ls[i][1])
    fo.write(",".join(ls))
fo.close()
fi.close()


答案

选择题


1-5      A B C D A

6-10     B C D A B

11-15    C D B D C

16-20    A A B C C

21-25    D B D B A

26-30    B D C B A

31-35    D D D B C 

36-40    A C C B D

作者:吴常文
出处:https://blog.csdn.net/qq_41405475
本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

猜你喜欢

转载自blog.csdn.net/qq_41405475/article/details/114604117