国家二级(Python)机试模拟试卷12
综合应用题
1.考生文件夹下存在2个Python源文件和3个文本文件,分别对应两个问题,请按照文件内说明修改代码,实现以下功能:
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子言行。这里给出了一个网络版本的《论语》,文件名称为“论语.txt”,其内容采用逐句“原文”与逐句“注释”相结合的形式组织,通过【原文】标记《论语》原文内容,通过【注释】标记《论语》注释内容,具体文件格式框架请参考“论语.txt”文件。
问题1:在PY301—1.py文件中修改代码,提取“论语.txt”文件中的原文内容,输出保存到考生文件夹下,文件名为“论语一原文.txt”。具体要求:仅保留“论语.txt”文件中所有【原文】标签下面的内容,不保留标签,并去掉每行行首空格及行尾空格,无空行。原文小括号及内部数字是源文件中注释项的标记,请保留。示例输出文件格式请参考“论语一原文一输出示例.txt”文件。注意:示例输出文件仅帮助考生了解输出格式,不作它用。
试题程序:
#以下代码为提示框架
#请在程序的…处使用一行或多行代码替换
#请在程序的______处使用一行代码替换
#注意:提示框架代码可以任意修改,以完成程序功能为准
fi=open(”论语.txt”,_______)
fo=open(”论语一原文.txt”,________)
…
for line in fi:
…
fo.write(line.istrip())
…
问题2:在PY301-2.py文件中修改代码,对“论语一原文.txt”或“论语.txt”文件进一步提纯,去掉每行文字中所有小括号及内部数字,保存为“论语一提纯原文.txt”文件。示例输出文件格式请参考“论语一提纯原文一输出示例.tXt”文件。注意:示例输出文件仅帮助考生了解输出格式,不作它用。
试题程序:
#以下代码为提示框架
#请在程序的…处使用一行或多行代码替换
#请在程序的______处使用一行代码替换
#注意:提示框架代码可以任意修改,以完成程序功能为准
fi=open(”论语一原文.txt”,________)
fo=open(”论语一提纯原文.txt”,_________)
…
for line in fi:
…
line=line.replace(________)
…
(1)fi=open(”论语.txt”,\\
解析:(1)题目要求从“论语.txt”文件中提取内容,输出保存到文件“论语一原文.txt”中,因此需要用”r”模式打开“论语.txt”,用”w”模式创建文件“论语一原文.txt”。
本题要求区域性提取,与单行提取不同,因此,可以借助写标记flag来标记操作的是哪里的文本。使用for循环遍历“论语.txt”中的每一行,当该行存在【时,说明已经到了新的区域,写标记置为否flag=False;当该行存在【原文】时,写标记置为True;当判断写标记为True时,就将当前行内容写入新的文件”论语一原文.txt”中。对文件操作完成后,使用close()函数关闭文件。
(2)题目要求对“论语一原文.txt”进一步提纯,保存为“论语一提纯原文.txt”文件,因此需要用”r”模式打开“论语一原文.txt”,用”w”模式创建文件“论语一提纯原文.txt”。
题目要求去掉每行文字中所有小括号及内部数字,可在for循环遍历“论语一原文.txt”文件中的每一行时,用空来代替出现的“(数字)”形式。分析“论语一原文.txt”文件可知,其中出现“(1)”~“(22)”共22种可能,因此内部嵌套for循环需要从1遍历到22,构造“(i)”并替换。替换后将该行内容写入到文件“论语一提纯原文.txt”中。对文件操作完成后,使用close()函数关闭文件。
简单应用题
2.考生文件夹下存在一个文件PY201.py,请写代码替换横线,不修改其他代码,实现以下功能:
使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200的太阳花,效果如下图所示。
import turtle
turtle.color(“red”,\\
解析:本题考查turtle库的使用。观察题干中的图形可知,太阳花的边为红色且用黄色填充,因此首先设置color()函数的两个参数“red”和“yellow”。由于涉及到填充图形,因此要先调用begin_fill()函数。题目要求边长为200,则fd()函数的参数应设置200。太阳花共有36个角,每个角为10度,因此绘制好一条边后角度要增加170度再绘制下一条边,left()函数的参数应设置为170。
3.考生文件夹下存在一个文件PY202.py,该文件是本题目的代码提示框架,其中代码可以任意修改,请在该文件中编写代码,以实现如下功能:
编写程序,实现将列表[51,33,54,56,67,88,431,111,141,72,45,2,78,12,15,5,69]中的素数去除,并输出去除素数后列表的元素个数,结果保存在考生文件夹下,命名为“PY202.txt”。。请结合程序整体框架,补充横线处代码。
试题程序:
#以下代码为提示框架
#请在程序的…处使用一行或多行代码替换
#请在程序的______处使用一行代码替换
#注意:提示框架代码可以任意修改,以完成程序功能为准
fo=open(”PY2 02.txt”,“w”)
def prime(num):
……#此处可以是多行代码
ls=[51,3 3,54,5 6,67,88,431,111,141,72,45,2,7 8,12,15,5,69]
lis=[]
for i in ls:
if prime(i) ==False:
________#处为一行代码
fo.write(”>>>(),列表长度为{}\\
fo=open(”PY202.txt”,”w”)
def prime(num):
for i in range(2,num);
if num%i==0;
return False
return True
ls=[51,33,54,56,67,88,431,111,141,72,45,2,78,13,15,5,69]
lis=[]
for i in ls:
if prime(i)==False:
lis.append(i)
fo.write(”>>>{},列表长度为{}”.format(lis.len(lis)))
fo.close()
解析:素数是只能被1和它本身
本文档预览:3600字符,共13559字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载