python二级备考(3)-综合应用

news2024/12/26 9:20:21

1

《命运》是著名科幻作家倪匡的作品。这里给出《命运》的一个网络版本文件,文件名为“命运. txt”。

问题1 (5分) :在PY301-1. py文件中修改代码,对“命运. txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次,字符与频次之间采用英文冒号”:”分隔,示例格式如下:

的:2557

f = open('命运.txt','r')
txt = f.read()
d = {}
for i in txt:
    if i not in ",。?!《》【】“”‘’":
        d[i] = d.get(i,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse = True)
print("{}:{}".format(ls[0][0],ls[0][1]))
f.close()

问题2 (5分) :在PY301-2. py文件中修改代码,对“命运. txt”文件进行字符频次统计,按照频次由高到低,屏幕输出前10个频次最高的字符,不包含回车符,字符之间无间隔,连续输出,示例格式如下:

,的"一我了。是不有

f = open('命运.txt','r')
txt = f.read()
d = {}
for i in txt:
    if i not in '\n':
        d[i] = d.get(i,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
for k in range(10):
    print(ls[k][0],end='')
f.close()

问题3 (10分) :在PY301-3. py文件中修改代码,对“命运. txt”文件进行字符频次统计,将所有字符按照频次从高到低排序,字符包括中文、标点、英文等符号,但不包含空格和回车。将排序后的字符及频次输出到考生文件夹下,文件名为“命运-频次排序. txt”。字符与频次之间采用英文冒号”:”分隔,各字符之间采用英文逗号”,”分隔,参考CSV格式, 最后无逗号,文件内部示例格式如下:

理:224,斯:120,卫:100

f = open('命运.txt','r')
fi = open('命运-频次排序.txt','w')
txt = f.read()
d = {}
for i in txt:
    if i not in '\n':
        d[i] = d.get(i,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
s=""
for k in ls:
    s+="{}:{}".format(k[0],k[1])+','
fi.write(s[:-1])
f.close()
fi.close()

2

下面所示为一套由公司职员随身佩戴的位置传感器采集的数据,文件名称为“sensor.txt”,其内容示例如下:

2016/5/31 0:05, vawelon001, 1, 1

2016/5/31 0:20, earpa001, 1,1

2016/5/31 2:26, earpa001,1, 6

... (略)

第一列是传感器获取数据的时间,第二列是传感器的编号,第三列是传感器所在的楼层,第四列是传感器所在的位置区域编号。

问题1 (10分) :在PY301-1. py文件中修改代码,读入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

... (略)

f = open('sensor.txt','r',encoding='utf-8')
fo = open('earpa001.txt','w')
ls = f.readlines()
for line in ls:
    lt = line.strip('\n').split(',')
    if lt[1] == ' earpa001':
        fo.write('{},{},{},{}\n'.format(lt[0],lt[1],lt[2],lt[3]))
f.close()
fo.close()

问题2 (10分) :在PY301-2. py文件中修改代码,读入“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次;

 

f = open('earpa001.txt','r',encoding = 'utf-8')
fo = open('earpa001_count.txt','w')
ls = f.readlines()
d = {}
for line in ls:
    lt = line.strip('\n').split(',')
    key = lt[2]+'-'+lt[3]
    d[key] = d.get(key,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]))
f.close()
fo.close()

《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子言行。这里给出了一个网络版本的《论语》,文件名称为“论语.txt”,其内容采用逐句“原文”与逐句“注释”相结合的形式组织,通过【原文】标记《论语》原文内容,通过【注释】标记《论语》注释内容,具体文件格式框架请参考“论语.txt”文件。

问题1(10分):在PY301-1.py文件中修改代码,提取“论语.txt”文件中的原文内容,输出保存到考生文件夹下,文件名为“论语-原文.txt”。具体要求:仅保留“论语.txt”文件中所有【原文】标签下面的内容,不保留标签,并去掉每行行首空格及行尾空格,无空行。原文小括号及内部数字是源文件中注释项的标记,请保留。


fi = open("论语.txt", 'r')
fo = open("论语-原文.txt", 'w')
flag = False
for line in fi:
    if '【原文】' in line:
        flag = True
        continue
    if '【注释】' in line:
        flag = False
    line = line.strip(" \n")
    if flag == True:
        if line:
            fo.write(line+'\n')
fi.close()
fo.close()

问题2(10分):在PY301-2.py文件中修改代码,对“论语-原文.txt”或“论语.txt”文件进一步提纯,去掉每行文字中所有小括号及内部数字,保存为“论文-提纯原文.txt”文件。示例输出文件格式请参考“论语-提纯原文-输出示例.txt”文件。

fi = open("论语-原文.txt", 'r')
fo = open("论语-提纯原文.txt", 'w')
for line in fi:
    for i in range(23):
        line=line.replace('('+str(i)+')','')
    fo.write(line)
fi.close()
fo.close()
fi = open("论语-原文.txt", "r")
fo = open("论语-提纯原文.txt", "w")
for line in fi:
    for i in range(0,30):
        line=line.replace('({})'.format(i),'')
    fo.write(line)
fi.close()
fo.close()

 4

二千多年前希腊的天文学家希巴克斯命名十二星座,它们是水瓶座、双鱼座、白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座。给出一个CSV文件(PY301-SunSign.csv),内容示例如下:

序号,星座,开始月日,结束月日,Unicode

1,水瓶座,120,218,9810

2,双色座,219,320,9811

3,白羊座,321,419,9800

4,金牛座,420,520,9801

5,双子座,521,621,9802

…(略)

以第1行为例,120表示1月20日,218表示2月18日,9810是Unicode码。

问题1(5分):在PY301-1.py文件中修改代码,读入CSV文件中数据,获得用户输入。根据用户输入的星座名称,输出此星座的出生日期范围。

参考输入和输出示例格式如下:

请输入星座中文名称(例如,双子座):双子座

双子座的生日位于521-621之间

f = open('PY301-SunSign.csv','r')
ls = []
s = input('请输入星座中文名称(例如,双子座):')
for line in f.readlines():
    ls = line.strip('\n').split(',')
    if ls[1] == s:
        print("{}的生日位于{}-{}之间".format(ls[1],ls[2],ls[3]))
f.close()

问题2(10分):在PY301-2.py文件中修改代码,读入CSV文件中数据,获得用户输入。用户键盘输入一组范围是1-12的整数作为序号,序号间采用空格分隔,以回车结束。屏幕输出这些序号对应的星座的名称、字符编码以及出生日期范围,每个星座的信息一行。本次屏幕显示完成后,重新回到输入序号的状态。

参考输入和输出示例格式如下:

请输入星座序号(例如,5):5 10

双子座(9802)的生日是5月21日至6月21日之间

天蝎座(9807)的生日是10月24日至11月22日之间

请输入星座序号(例如,5):

f = open('PY301-SunSign.csv','r')
ls = []
ls = f.readlines()
while True:
    s = input('请输入星座序号(例如,5):')
    for i in s.split():
        for line in ls:
            lt = line.strip('\n').split(',')
            if i == lt[0]:
                print("{}({})的生日是{}月{}日至{}月{}日之间".format(lt[1],lt[4],lt[2][:-2],lt[2][-2:],lt[3][:-2],lt[3][-2:]))
f.close()

问题3(5分):在问题2的基础上,在PY301-3.py文件中修改代码,对键盘输入的每个序号做合法性处理。如果输入的数字不合法,请输出“输入星座编号有误!”,継纹输出后续信息,然后重新回到输入序号的状态。

参考输入和输出示例格式如下:

请输入星座序号(例如,5):5 14 11

双子座(9802)的生日是5月21日至6月21日之间

输入星座序号有误!

射手座(9808)的生日是11月23日至12月21日之间

请输入星座序号(例如,5):

f = open('PY301-SunSign.csv','r')
ls = []
ls = f.readlines()
while True: 
    s = input('请输入星座序号(例如,5):')
    for i in s.split():
        if 0<int(i)<13:
            flag = True
        else:
            flag = False
        for line in ls:
            lt = line.strip('\n').split(',')
            if i == lt[0]:
                print("{}({})的生日是{}月{}日至{}月{}日之间".format(lt[1],lt[4],lt[2][:-2],lt[2][-2:],lt[3][:-2],lt[3][-2:]))
                break
        if flag == False:
            print("输入星座序号有误!")
f.close()

 5

、《三国演义》是中国古典四大名著之一,曹操是其中主要人物,考生文件夹文件data.txt给出《三国演义》简介。

问题1:请编写程序,用Python语言中文分词第三方库jieba对文件data.txt行分词,并将结果写入文件out.txt,每行一个词,例如:

内容简介

编辑

整个

故事

东汉

...

在考生文件夹下给出了程序框架文件PY301-1.py,补充代码完成程序(10分)

问题2:对文件out.txt进行分析,打印输出曹操出现次数。

 6

问题1:(10分)在考生文件夹下给出了程序框架文件PY301-1.py,补充代码完成程序。用Python语言中文分词第三方库jieba对文件data.txt进行分词,并选择长度大于等于3个字符的关键词,写入文件out1.txt,每行一个关键词,各行的关键词不重复,输出顺序不做要求,例如:

人工智能

科幻小说

...

import jieba
f = open('data.txt','r')
lines=f.readlines()
f.close()
D=[]
for line in lines:
    wordList=jieba.lcut(line)#用结巴分词,对每行内容进行分词
    for word in wordList:
        if len(word)<3: #判断词长度,要大于等于3个长度
            continue
        else:
            if word not in D:
                D.append(word)
f=open('out1.txt','w')
f.writelines('\n'.join(D))            
f.close()

问题2:(10分)在考生文件夹下给出了程序框架文件PY301-2.py,补充代码完成程序。对文件data.txt进行分词,对长度不少于3个字符的关键词,统计出现的次数,按照出现次数由大到小的顺序输出到文件out2.txt,每行一个关键词及其出现次数,例如:

科学家:2

达特茅斯:1

...

import jieba
f=open("data.txt","r")
lines=f.readlines()
f.close()

d = {}
for line in lines:
    wordList=jieba.lcut(line) #用结巴分词,对每行内容进行分词
    for word in wordList:
        if len(word)<3:
            continue
        else:
            d[word]=d.get(word,0)+1
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)#按照词频由高到低排序
            
f=open('out2.txt','w')
for i in range(len(ls)):
    f.write('{}:{}\n'.format(ls[i][0],ls[i][1]))
f.close()

 7

某班学生评选一等奖学金,学生的10门主干课成绩存在考生文件夹下文件score.txt中,每行为一个学生的信息,分别记录了学生学号、姓名以及10门课成绩,格式如下:

1820161043    郑珉镐    68 66 83 77 56 73 61 69 66 78

1820161044    沈红伟    91 70 81 91 96 80 78 91 89 94

……

从这些学生中选出奖学金候选人,条件是:1)总成绩排名在前10名;2)全部课程及格(成绩大于等于60)。

问题1:给出按总成绩从高到低排序的前10名学生名单,并写入文件candidate0.txt,每行记录一个学生的信息,分别为学生学号、姓名以及10门课成绩。补充考生文件夹下文件PY301-1.py,完成这一功能。

问题2:读取文件candidate0.txt,从中选出候选人,并将学号和姓名写入文件candidate.txt格式如下:

1010112161722    张三

1010112161728    李四

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像去噪--(1)

系列文章目录 文章目录 系列文章目录前言一、图像噪声1.1 噪声定义1.2 基本特征 二、按照噪声概率分布分类1.高斯噪声2.泊松噪声 三、去噪算法3.1 线性滤波3.1.1 高斯滤波3.1.2 均值滤波 3.2 非线性滤波3.2.1 中值滤波3.2.2 双边滤波 四、深度学习总结 前言 一、图像噪声 1.1 …

【模糊集合】示例

【模糊集合】隶属函数、关系与运算 例1 设&#xff0c; 分别进行交、并、补运算&#xff0c;有&#xff1a; 由上模糊集合的全体组成的集合称为的模糊幂集&#xff0c;记为&#xff0c;fuzzy 上述为模糊集合的Zadeh记法&#xff0c;其中的“”号不表示分式求和&#xff0c;仅作…

深度强化学习(七)策略梯度

深度强化学习(七)策略梯度 策略学习的目的是通过求解一个优化问题&#xff0c;学出最优策略函数或它的近似函数&#xff08;比如策略网络&#xff09; 一.策略网络 假设动作空间是离散的,&#xff0c;比如 A { 左 , 右 , 上 } \cal A\{左,右,上\} A{左,右,上}&#xff0c;策…

Linux 进程控制进程终止

目录 一、fork函数 1、概念 2、父子进程的共享 3、 为什么父子进程会从fork()调用之后的位置继续执行代码 4、写时拷贝 5、为什么需要写时拷贝 6、写时拷贝的好处 7、fork常规用法 8、fork调用失败的原因 9、查看系统最大进程数 二、进程终止 1、进程退出场景 2、…

redis 入门01

1.安装与配置 在官网下压缩包并传送给自己的虚拟机或者使用wget直接下载都可以 注意:redis是运行在linux下的基于内存的kv键值对数据库 安装与配置参考 2.经典Hello World 注意设置redis在后台运行,默认是前台进行的 我们配置完成之后首先启动服务器 redis-server 配置文件 这里…

MyBatis3源码深度解析(十二)MyBatis的核心组件(一)Configuration

文章目录 第四章 MyBatis的核心组件4.1 使用MyBatis操作数据库4.2 MyBatis核心组件4.3 Configuration组件4.3.1 属性4.3.2 设置4.3.3 类型别名4.3.3 类型处理器4.3.5 对象工厂4.3.6 插件4.3.7 配置环境4.3.8 映射器 第四章 MyBatis的核心组件 4.1 使用MyBatis操作数据库 在研…

Boyer Moore 算法介绍

1. Boyer Moore 算法介绍 Boyer Moore 算法&#xff1a;简称为 BM 算法&#xff0c;是由它的两位发明者 Robert S. Boyer 和 J Strother Moore 的名字来命名的。BM 算法是他们在 1977 年提出的高效字符串搜索算法。在实际应用中&#xff0c;比 KMP 算法要快 3~5 倍。 BM 算法思…

【Machine Learning】Suitable Learning Rate in Machine Learning

一、The cases of different learning rates: In the gradient descent algorithm model: is the learning rate of the demand, how to determine the learning rate, and what impact does it have if it is too large or too small? We will analyze it through the follow…

【安全类书籍-1】asp代码审计.pdf

目录 内容简介 作用 下载地址 内容简介 这个文档摘录片段主要讨论了ASP编程中的安全性审计,包括SQL注入漏洞、Cookie注入防范措施及文件上传安全问题,并给出了相关示例代码。 SQL注入漏洞与防范 - ASP代码中展示了如何通过`Request.QueryString`和`Request.Form`获取用户…

SpringBoot打造企业级进销存储系统 第五讲

package com.java1234.repository;import com.java1234.entity.Menu; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query;import java.util.List;/*** 菜单Repository接口*/ public interface MenuReposit…

spacy进行简单的自然语言处理的学习

自然语言处理基本概念 概念&#xff1a;自然语言处理&#xff0c;是让机器理解人的语言的过程。 作用&#xff1a;通过使用自然语言处理&#xff0c;机器可以理解人的语言&#xff0c;从而进行语义分析&#xff0c;例如&#xff1a;从一句话中判断喜怒哀乐&#xff1b;从一段文…

电大搜题:开启学习新时代

身处信息化时代&#xff0c;学习的方式已经发生了巨大的变革。在这个多元化的学习环境中&#xff0c;传统的学习模式已经无法满足现代学习者的需求。然而&#xff0c;电大搜题应运而生&#xff0c;为学习者提供了一个高效、便捷的学习途径。 电大搜题&#xff0c;作为黑龙江开…

阅读 - 二维码扫码登录原理

在日常生活中&#xff0c;二维码出现在很多场景&#xff0c;比如超市支付、系统登录、应用下载等等。了解二维码的原理&#xff0c;可以为技术人员在技术选型时提供新的思路。对于非技术人员呢&#xff0c;除了解惑&#xff0c;还可以引导他更好地辨别生活中遇到的各种二维码&a…

铁路订票平台小程序|基于微信小程序的铁路订票平台小程序设计与实现(源码+数据库+文档)

铁路订票平台小程序目录 目录 基于微信小程序的铁路订票平台小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、车次信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐…

Transformer学习笔记(二)

一、文本嵌入层Embedding 1、作用&#xff1a; 无论是源文本嵌入还是目标文本嵌入&#xff0c;都是为了将文本中词汇的数字表示转变为向量表示&#xff0c;希望在这样的高维空间捕捉词汇间的关系。 二、位置编码器Positional Encoding 1、作用&#xff1a; 因为在Transformer…

冲动是魔鬼,工作不顺心时不要把坏脾气带给家人

今天与一个跟踪了很久的客户准备签合同了&#xff0c;客户突然反悔&#xff0c;为此与他周旋了一整天&#xff0c;忙碌得一口水都没有喝。回到小区坐在车里抽着烟&#xff0c;久久不愿回家&#xff0c;只想一个人坐着&#xff0c;疲惫、无奈。这个月的奖金似乎又将成为泡影。 …

Microsoft SQL Server2019占用大量磁盘空间的解决办法(占了我C盘120G的空间!!!)附SQL数据库定时清理代理作业

一、问题 安装Microsoft SQL Server2019后我的C盘在几天后少了100G&#xff0c;如图所示&#xff1a; 解决后&#xff1a; 出现这种情况&#xff0c;我在各种清理C盘后&#xff0c;空间还是没有太大变化 &#xff0c;且几乎每天都要少2个G&#xff0c;后来终于找见原因了&…

Postman接口测试:API 测试的必备技巧

在现代软件开发生命周期中&#xff0c;接口测试是一个至关重要的部分。使用 Postman 这一工具&#xff0c;可以轻松地进行 接口测试。以下是一份简单的使用教程&#xff0c;帮助你快速上手。 安装 Postman 首先&#xff0c;你需要在电脑上安装 Postman。你可以从官网上下载并…

虚拟机NAT模式配置

注意这里IP要和网关在同一网段&#xff0c;且虚拟机默认网关末尾为.2&#xff08;如果默认网关配置为.1会与宿主机冲突&#xff0c;导致无法ping通外网&#xff09; 点击NAT模式下的NAT设置即可查看默认网关 这里的网关可以理解为主机与虚拟机交互的入口

CSDN首发Chainlink(预言机)讲解:基础知识总结 到底什么是预言机本篇带你解析

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 前面的专栏带大家熟悉了 区块链的基本组成 、共识机制、智能合约、最小信任机制 以及EVM等知识 如遇不懂的概念或名…