计算机二级python真题
文章目录
- 计算机二级python真题
- 一、简单应用题——学生就业
- 二、综合应用题——论语
一、简单应用题——学生就业
学生就业
描述: 键盘输入某个班级各个同学就业的行业名称,行业名称之间用空格间隔(回车结束输入)。完善python代码,统计各行各业就业的学生数量,按数量从高到低方式输出。
例如输入:
交通 金融 计算机 交通 计算机 计算机
输出参考格式如下,其中冒号为英文冒号:
计算机:3
交通:2
金融:1
names=input("请输入各个同学行业名称,行业名称之间用空格间隔(回车结束输入):")
lt = names.split()
d = {}
for i in range(len(lt)):d[lt[i]]=d.get(lt[i],0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序
for j in range(len(ls)):zy,num = ls[j]print("{}:{}".format(zy,num))
二、综合应用题——论语
本题解答 问题一 :
在模板中修改代码,提取“论语.txt"文件中的原文内容,输出保存到考生文件夹下,文件名为“论语-原文.txt"。具体要求:仅保留“论语.txt"文件中所有【原文】标签下面的内容,不保留标签,并 去掉每行行首空格
及行尾空格
,无空行。原文小括号及内部数字是源文件中注释项的标记,请保留。示例输出文件格式请参考“论语-原文-输出示例.txt"文件。注意:示例输出文件仅帮助考生了解输出格式,不作它用。
代码 1:
fi = open("论语.txt", "r", encoding="utf-8")
fo = open("论语-原文.txt", "w", encoding="utf-8")
flag = False
for line in fi:if "【原文】" in line:flag = Trueif "【注释】" in line:flag = Falseif flag == True and "【注释】" not in line and "【原文】" not in line:line = line.strip(" \n")if line !="": # 判断line是否为空串fo.write('{}\n'.format(line))fi.close()
fo.close()
代码 2:
fi = open("论语.txt", "r", encoding="utf-8")
lines = fi.readlines()
fi.close()flag = False
fo = open("论语-原文.txt", "w", encoding="utf-8")
for line in lines:if "【注释】" in line:flag = Falseif "【原文】" in line:flag = Truecontinueif flag==True:fo.write(line.lstrip())else:continue
fo.close()
lstrip()函数:https://www.runoob.com/python/att-string-lstrip.html
代码3:
fi = open("论语.txt", "r")
fo = open("论语-原文.txt","w")
flag = False
for line in fi:if "【原文】" in line:flag = Truecontinueelif "【注释】" in line:flag = Falseelif flag == True and "【原文】" in line:line = line.strip(" \n")if line !="":fo.write(line)
fi.close()
fo.close()
本题解答 问题二:
在模板中修改代码,对“论语-原文.txt" (这是你回答问题一生成的答案文件)或“论语.txt”文件进一步提纯,去掉每行文字中所有的小括号及内部数字,保存为“论语-提纯原文”文件。示例输出文件格式请参考“论语-提纯原文-输出示例.txt"文件。注意:示例输出文件仅帮助考试了解输出格式。不做它用。
代码:
fi = open("论语-原文.txt", "r", encoding="utf-8")
lines = fi.readlines()
fi.close()fo = open("论语-提纯原文.txt", "w", encoding="utf-8")
for line in lines:for i in range(999): # 可以打开给定文件看一下最大值line = line.replace("({})".format(i),"")fo.write(line)fo.close()