2024年3月NCRE二级Python综合应用题历年真题

在这里插入图片描述

#PY301-1.py
#请在.....处填写多行表达式或语句
#可以修改其他代码

def ravg(lst):
    sum=0
    for i in lst:
        sum+=i
    return round(sum/len(lst),1)

qzlst=[]
swlst=[]
zylst=[]
with open("data2.csv","r") as f:
    datas=f.readlines()
    for i in datas:
        if i in datas[:5]:
            print(i,end='')
        if i in datas[1:]:
            ls=i.strip().split(',')
            qzlst.append(eval(ls[1]))
            swlst.append(eval(ls[2]))
            zylst.append(eval(ls[3]))
avglst=["平均值",ravg(qzlst),ravg(swlst),ravg(zylst)]
maxlst=["最大值",max(qzlst),max(swlst),max(zylst)]
minlst=["最小值",min(qzlst),min(swlst),min(zylst)]

with open("tongji.csv","w") as f:
    f.write('统计,报名,弃考,有效\n')
    f.write('{},{},{},{}'.format(*avglst)+'\n')
    f.write('{},{},{},{}'.format(*maxlst)+'\n')
    f.write('{},{},{},{}'.format(*minlst))

在这里插入图片描述

#
# 在____________上补充代码 (12根短线)
# 在……上补充一行或多行代码 (6个点)
#


fi = open("data301.txt","r")
f = open("result301.txt","w")
cnumd = {}
name = ''
count = 0
flag = 1
for line in fi:
    if '"name":' in line:
        name = line.split('"')[-2]
        flag = 1
    elif '"value":' in line and flag == 1:
        dx = line.split(': ')[-1][:-1]
        cnumd[name] = dx
        flag = 0
        count+=1
for d in cnumd.items():
    f.write("{}:{}\n".format(d[0],d[1]))
print("一共有{}个地区".format(count))
f.close()
fi.close()



#
# 在____________上补充代码 (12根短线)
# 在……上补充一行或多行代码 (6个点)
#
lcnum = []
with open("result301.txt", "r") as fi:
    for line in fi:
        s = line.strip().split(':')
        if len(s)<=1:
            continue
        lcnum.append([s[0],eval(s[1])])
lcnum.sort(key=lambda x:x[1], reverse= True)
lz = 0
lw = 0
for l in lcnum:
    if l[1] > 10000:
        lw += 1
    elif l[1] == 0:
        lz += 1
print("新冠确诊人数最多的地区是{},人数是{}".format(lcnum[0][0],lcnum[0][1] ))
print("新冠确诊人数超过1W的地区有{}个".format(lw))
print("新冠确诊人数为0的地区有{}个".format(lz))

在这里插入图片描述

# 请在...处使用多行代码替换
#
# 注意:其他已给出代码仅作为提示,可以修改
L=[]                          
fo = open("score.txt", "r")
fi = open("candidate0.txt", "w")
lines = fo.readlines()
for line in lines:
    line = line.strip()
    student = line.split(' ')
    sum = 0
    for i in range(1,11): 
        sum += int(student[-i])
    student.append(str(sum))
    L.append(student)
L.sort(key=lambda x:x[-1],reverse=True)
for i in range(10):
    fi.write(' '.join(L[i][:-1]) + '\n')
fo.close()
fi.close()

'''
输入文件 : candidate0.txt
输出文件 : candidate.txt
'''
fo = open("candidate0.txt", "r")
fi = open("candidate.txt", "w")
L = []  # 存储候选人
lines = fo.readlines()
for line in lines:
    line = line.strip()
    student = line.split(' ')
    for i in student[-10:]:
        if int(i) < 60:
            break
    else:
        L.append(student[:2])
for i in L:
    fi.write(' '.join(i) + '\n')
fo.close()
fi.close()

在这里插入图片描述

#请在.....处填写多行表达式或语句
#可以修改其他代码

f = open("八十天环游地球.txt")
fo=open("八十天环游地球-章节.txt",'w')
for i in f:
    line=i.strip().split()
    if line[0][0]=="第" and "章" in line[0]:
        fo.write(i)
fo.close()
f.close()
#请在.....处填写多行表达式或语句
#可以修改其他代码
import jieba

f = open("八十天环游地球.txt")
datas=f.readlines()
l=[]
for i in range(len(datas)):
    line=datas[i].split(' ')
    if datas[i][0]=="第" and "章" in line[0]:
        l.append(i)        
for i in range(len(l)):
    if i !=len(l)-1:
        data=''.join(datas[l[i]:l[i+1]])
    else:
        data=''.join(datas[l[i]:])
    s=data.split()[0]
    words=jieba.lcut(data)    
    d={}
    for y in words:
        if len(y)<2:
            continue
        d[y]=d.get(y,0)+1
    lis=list(d.items())
    lis.sort(key=lambda x:x[1],reverse=True)
    print(s,lis[0][0],lis[0][1])
    
f.close()

在这里插入图片描述

# 请在......处写多行代码
# 建议不修改其他代码

import jieba

f = "红楼梦.txt"
sf = "停用词.txt"
f1=open(f,encoding="utf-8")
datas=f1.read()
f1.close()
f2=open(sf,encoding="utf-8")
words=f2.read()
f2.close()
data=jieba.lcut(datas)
d={}
word=["一个","如今","一面","众人","说道","只见","不知",
      "两个","起来","二人","今日","听见","不敢","不能",
      "东西","只得","心中","回来","几个","原来","进来",
      "出去","一时","银子","起身","答应","回去"]
for i in data:
    if len(i)<2 or i in words or i in word:
        continue
    if i in ["凤姐","凤姐儿","凤丫头"]:
        i="凤姐"
    elif i in ["宝玉","二爷","宝二爷"]:
        i="宝玉"
    elif i in ["黛玉","颦儿","林妹妹","黛玉道"]:
        i="黛玉"
    elif i in ["宝钗","宝丫头"]:
        i="宝钗"
    elif i in ["贾母","老祖宗"]:
        i="贾母"
    elif i in ["袭人","袭人道"]:
        i="袭人"
    elif i in ["贾政","贾政道"]:
        i="贾政"
    elif i in ["贾琏","琏二爷"]:
        i="贾琏"
    d[i]=d.get(i,0)+1
l=list(d.items())
l.sort(key=lambda x:(x[1],x[0]), reverse=True)
f=open("result.csv",'w')
for i in l:
    if i[1]<40:
        break
    f.write(i[0]+','+str(i[1])+'\n')
f.close()


  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值