【计算机二级】综合题目

计算机二级python真题



在这里插入图片描述


一、简单应用题

描述

模板中给出的代码是本题目的提示框架,其中代码可以任意修改。请在该文件中删除横线,编写代码,以实现一下功能:

键盘输入小明学习的课程名称及考分等信息,信息间采用空格分隔,每个课程一行,空行回车结束录入,示例格式如下:

数学 90

语文 95

英语 86

物理 84

生物 87

屏幕输出得分最高的课程以及成绩,得分最低的课程及成绩,以及平均分(保留2位小数)。

注意,其中逗号为英文逗号,格式如下;

是高公课程早语文95,是低公课程早物理84,平均公早88.40

代码:

data = input()  # 课程名 考分
d = {} 
while data:
    t=data.split()
    d[t[0]]=int(t[1])
    data = input()


ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse = True)

course_1,max_score = ls[0]
course_2,min_score = ls[len(ls)-1]

sum = 0
for i in d.values():
    sum += int(i) 
avg = sum/len(ls)
print("最高分课程是{}{}, 最低分课程是{}{}, 平均分是{:.2f}".format(course_1,max_score,course_2,min_score,avg))

二、综合应用题《人工智能分词 两问》

在附件中有一个data.txt文件是一个来源于网上的技术信息资料。

本题回答问题1

在右侧的编程框内,补充修改代码完成程序。用Python语言中文分词第三方库jieba对文件data.txt进行分词,并选择长度大于等于3个字符的关键词,写入文件out1.txt,每行一个关键词,各行的关键词不重复,输出顺序不做要求,例如:

人工智能

科幻小说

……

代码1:

import jieba
fi = open("data.txt","r",encoding="utf-8")
lines = fi.readlines()
fi.close()

d = []
fo = open('out1.txt','w',encoding="utf-8")
for line in lines:
    wordlist = jieba.lcut(line)
    for word in wordlist:
        if len(word) < 3:
            continue
        else:
            if word not in d:
                d.append(word)
fo.writelines("\n".join(d))
fo.close()

代码2:

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

words = []

fo = open('out1.txt','w')
for line in lines:
    line = line.strip("\n")
    wordlist = jieba.lcut(line)
    for word in wordlist:
        if len(word)>=3 and (word not in words):
            words.append(word)
        else:
            continue
for word in words:
	fo.write(word+'\n')
#fo.writelines('\n'.join(words))

fo.close()

本题回答问题2

右侧编程框中给出部分代码,补充完成程序,对文件data.txt进行分词,对长度不少于3个字符的关键词,统计出现的次数,按照出现次数由大到小的顺序输出到文件out2.txt,每行一个关键词机器出现次数,例如:

科学家:2

达特茅斯:1

……

代码:

import jieba
fi = open("data.txt","r",encoding="utf-8")
lines = fi.readlines()
fi.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) # 此行可以按照词频由高到低排序

fo = open("out2.txt","w",encoding="utf-8")
for i in range(len(ls)):
    fo.write("{}:{}\n".format(ls[i][0],ls[i][1]))

fo.close()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guan12319

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值