计算机二级python真题


文章目录

  • 计算机二级python真题
  • 一、简单应用题 1
  • 二、简单应用题 2
  • 三、综合应用题 1
  • 四、综合应用题2


一、简单应用题 1

五个彩色圈圈

请参考编程,编写代码替换横线内容,不得修改其他代码,实现下面功能。

(1)使用turtle库和random库,在屏幕上绘制5个彩色的圆;

(2)圆的颜色随机从颜色列表color中获取;

(3)圆的圆心坐标x和y值从范围[-100, 100]之间选取,半径从范围[10,30]之间选取。效果如下图所示。

代码:

import turtle as timport random as rcolor = ['red','green','blue','purple','black']r.seed(1)for j in range(5):t.pencolor(color[r.randint(0,4)])t.penup()t.goto(r.randint(-100,100),r.randint(-100,100))t. pendown()t.circle(r.randint(10,30))t.done()

二、简单应用题 2

中文分词

请编写代码替换省略号,可修改其他代码,实现下面功能:

(1)获取用户输入的一段文本,包含但不限于中文字符、中文标点符号及其他字符;

(2)用jieba的精确模式分词,统计分词后中文词语词频,具体为:将字符长度大于等于2的词语及其词频写入文件data. txt,每行-一个词语,词语和词频之间用中文冒号分隔。

示例如下(其中数据仅用于示意):

输入:
借助平台优势,宣传推广相应产品,并为技术从业者提供更多学习、交流、探讨的机会,从而促进技术交流、企业互通、人才培养,促进技术的发展。

输出:

借助:1
平台:1
优势:1
宣传:1
推广:1
相应:1
产品:1
技术:3
从业者:1
提供:1
学习:1
交流:2
探讨:1
机会:1
从而:1
促进:2
企业:1
互通:1
人才培养:1
发展:1
…(略)

代码:

import jiebas = input("请输入一个中文字符串,包含逗号和句号:") #请输入一个中文字符串,包含逗号和句号:k = jieba.lcut(s) #使用jieba库的精确分词模式dict1 = {}#定义空字典dict1for i in k: #构建词与词频键值对存放在字典dict1中dict1[i] = dict1.get(i, 0) + 1#字典的get函数with open('data.txt', 'w') as f:#使用with语句处理文件时,无论是否抛出异常,都能保证with语句执行完毕后关闭已经打开的文件list1 = []for k,v in dict1.items():#筛选键值字符串长度大于等于2的键值对存放到list1列表中 if len(k)>=2:list1.append(k + ':' + str(v))for item in list1: #将列表元素逐行写入data.txt文件f.write(item +'\n') #'\n'表示换行

三、综合应用题 1

价值链

附件中有素材文件 data3.txt,文件内容示例如下:

商业模式价值链由三个环节组成产品、工具、社区。我们团队以一站式系统开发为当前主要产品,利用XAMPP,PHPSTORM,微信开发者工具等软件根据客户要求提供合适的一体化管理系统。

… (略)

请编程实现如下功能:

(1)统计文件中出现词频最多的前10个长度不小于2个字符的词语,将词语及其出现的词频数按照词频数递减排序后显示在屏幕上,每行显示一个词语,用英文冒号连接词语及其词频。

示例如下:

我们:5
系统:3
微信:3
……(略)

代码:

import jiebadict_words = {}with open('data3.txt', 'r', encoding='GBK') as f:lines = f.read().split("\n")for line in lines:words = jieba.lcut(line)for word in words:if len(word)>=2:dict_words[word] = dict_words.get(word,0)+1ls = list(dict_words.items())ls.sort(key=lambda x:x[1], reverse = True)for i in range(10):print("{}:{}".format(ls[i][0],ls[i][1]))

代码:

import jiebadict_words = {}with open('data3.txt', 'r', encoding='GBK') as f:k = jieba.cut(f.read())for i in k:if len(i) >= 2:dict_words[i] = dict_words.get(i, 0) + 1data = sorted(dict_words.items(), key=lambda x:x[1], reverse=True)print(''.join([k + ':' + str(v) +'\n' for k, v in data[:10]]))

四、综合应用题2

价值链

编程实现如下功能:

(2)将文档以中文逗号及中文句号为分隔符分割成短句,将包含最高词频的词语的句子,输出到文件out. txt中,每句一行,示例如下:

以此为我们吸引更多的商机
同时普及我们的一站式开发技术
…(略)

代码:

import jiebaimport redict_words = {}with open('data3.txt', 'r', encoding='GBK') as f:senses =re.sub('([,。\n])', '|' , f.read())k = jieba.cut(senses)for i in k:if len(i) >= 2:dict_words[i] = dict_words.get(i, 0) + 1data = sorted(dict_words.items(), key=lambda x:x[1], reverse=True)with open('out.txt', 'w') as f:for sense in senses.split('|'):if data[0][0] in sense:f.write(sense+ '\n')

Python re模块:https://www.cnblogs.com/shenjianping/p/11647473.html