计算机二级Python综合题目
Posted 倾夏12319
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机二级Python综合题目相关的知识,希望对你有一定的参考价值。
计算机二级python真题
文章目录
一、简单应用题——高校分类
描述:
实现以下功能,键盘输入一组我国高校所对应的学校类型,以空格为分隔,共一行,示例格式如下:
综合 理工 综合 综合 综合 师范 理工
统计各类型的数量,从数量多到少的顺序屏幕输出类型及对应数量,以英文冒号分隔,以英文冒号分隔,每,个类型一行,输出参考格式如下:
综合:4
理工: 2
师范:1
代码:
txt = input("请输入类型序列:")
lt = txt.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 k in ls:
print(":".format(k[0], k[1]))
二、综合应用题——传感器
本题解答 问题一 :
在右侧模板中修改代码,读入sensor.txt文件中的数据,提取出传感器编号为earpa001的所有数据,将结果输出保存到"earpa001.txt"文件。
输出文件格式要求:原数据文件中的每行纪录写入新文件中,行尾无空格,无空行
。
参考格式如下:
2016/5/31 7:11, earpa001,2,4
2016/5/31 8:02, earpa001,3,4
2016/5/31 9:22, earpa001,3,4
…(略)
代码:
fi = open("sensor.txt","r")
lines = fi.readlines()
fi.close()
fo = open("earpa001.txt","w")
for line in lines:
ls = line.strip("\\n").split(",")
if ls[1] == " earpa001":
fo.write(',,,\\n'.format(ls[0],ls[1],ls[2],ls[3]))
fo.close()
本题解答 问题二 :
在右侧模板中修改代码,读入"earpa001.txt"文件中的数据,统计earpa001对应的职员在各楼层和区域出现的次数,保存到"earpa001_count.txt"文件,每一条纪录一行,位置信息和出现的次数之间用英文半角逗号隔开,行尾无空格,无空行。参考格式如下。
1-1,5
1-4,3
…(略)
含义如下:
第1行“1-1,5”中1-1表示1楼1号区域,5表示出现5次
第2行“1-4,3”中1-4表示1楼4号区域,3表示出现3次;
代码:
fi = open("earpa001.txt","r",encoding="utf-8")
lines = fi.readlines()
fi.close()
fo = open("earpa001_count.txt","w",encoding="utf-8")
d =
for line in lines:
lt = line.strip(" \\n").split(",")
ln = lt[2]+'-'+lt[3]
d[ln]=d.get(ln,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 该语句用于排序
for i in range(len(ls)):
fo.write(',\\n'.format(ls[i][0],ls[i][1]))
fo.close()
Python二级考试-综合应用题(对网络版的《论语》txt文件进行提纯)
网络版《论语》内容比较齐全,包含了原文内容和注释内容,而原文内容又包含了序号符号!这是一题比较简单的应用题,只涉及到TXT文件的读写!解决思路也比较清晰明了。
题目:
原文件如下图所示:
问题1:
分析问题:题目要求就是对“论语.txt”文件进行提纯,把空格,“【原文】”和“【注释】”以及注释内容去掉,并写入新的文件“论语-原文.txt”。注意:收尾空格要去掉。
解决思路:
1,用open函数打开源文件,并用readlines函数逐行读取文件内容,这里返回列表类型,每一行为列表的一个元素。
2,遍历列表,对每一个列表中的元素用strip函数和replace函数分别去掉换行符“\\n”和收尾空格(因为源文件有些行为空,读取的时候任会有“\\n”,这样去掉换行符方便后面处理)。
3,去掉换行符和收尾空格后,我们就可以观察当前文件内容(可以输出查看),不难发现除了原文内容,其他行第一个字符要么是“【”就是“(”,这样我们就可以用if语句进行筛选。
4,对筛选的内容写入新的文件即可。
代码实现:
# !/usr/bin/env python # -*- encoding:utf-8 -*- # 作者:赖正华 def read_files(): """读取文件""" files = open("C:\\\\WEXAM\\\\000000000000\\\\论语.txt","r",encoding="gbk") # 文件位置以文件所在位置为准 txts = files.readlines() n = 0 for txt in txts: # 也可以直接遍历files,效果是一样的。 new_txt = txt.strip(\'\\n\').replace(\' \',\'\') if new_txt and new_txt[0] != \'【\' and new_txt[0] != \'(\': n += 1 write_files(new_txt + "\\n") print("第{}句写入成功!".format(n)) files.close() def write_files(strs): """写入文件""" files = open("C:\\\\WEXAM\\\\000000000000\\\\论语-原文.txt","a+",encoding="gbk") # 文件位置以文件所在位置为准
files.write(strs)
files.close()
if __name__ == "__main__":
read_files()
print("操作成功!")
另一种解决思路:
files = open("C:\\\\Users\\\\赖正华\\\\Desktop\\\\论语.txt","r",encoding="utf-8") lines = files.readlines() num = 1 for line in lines: # 也可以直接遍历files,效果是一样的。 line = line.strip(\'\\n\').replace(\' \',\'\') if line and num == 1 and line.count("【原文】") == 0 and line.count("【注释】") == 0: print(line) if line.count("【原文】") > 0: num = 1 if line.count("【注释】") > 0: num = 0 files.close() # 输出内容如下: # 子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”
问题2:
分析问题:题目要求就是对问题一写入的新文件“论语-原文.txt”进一步提纯,也就是去掉每行文字中所有小括号及内部数字,并写入新的文件“论语-提纯原文.txt”。
解决思路:
1,用open函数打开源文件,并用readlines函数逐行读取文件内容,这里返回列表类型,每一行为列表的一个元素。
2,也是遍历列表,用strip函数或replace函数去除即可,这里我用replace函数。
3,对写好的内容写入新的文件即可。
代码实现:
# !/usr/bin/env python # -*- encoding:utf-8 # 作者:赖正华 def read_files(): """读取文件""" with open("C:\\\\WEXAM\\\\000000000000\\\\论语-原文.txt","r",encoding="gbk") as files: lines = files.readlines() n = 0 for line in lines: # 也可以直接遍历files,效果是一样的。 n += 1 for i in range(1,11): s = \'(\' + str(i) + \')\' line = line.replace(s,\'\') write_files(line) print("第{}行写入成功!".format(n)) def write_files(strs): """写入文件""" with open("C:\\\\WEXAM\\\\000000000000\\\\论语-提纯原文.txt","a+",encoding="gbk") as files: files.write(strs) if __name__ == "__main__": read_files() print("操作成功!")
以上是关于计算机二级Python综合题目的主要内容,如果未能解决你的问题,请参考以下文章