python二级第十一套答案
46、考生文件夹下存在2个Python源文件,分别对应2个问题;1个文本文件,作为本题目输入数据,请按照源文件内部说明修改代码,实现以下功能:

《背影》是朱自清的代表作之一,这里给出《背影》的原文内容,文件名为“背影.txt”。

问题1(10分):在PY301-1.py文件中修改代码,对“背影.txt”文件进行字符频次统计, 按照频次由高到低,输出前10个频次最高的字符,不包含空格和回车符,字符之间无间隔,连续输出,将输出结果保存在考生文件夹下,命名为“背影-高频词汇.txt”。示例格式如下:

,我。他的了不去是一

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

我:49,他:41,的:31,了:29,不:28,去:18,

# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准

f=open("背影.txt",'r',encoding='utf-8')
fo = open('背影-高频词汇.txt','w')
s = f.read()
d={}
for i in s:
    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):
    fo.write(ls[k][0])
fo.close()
f.close()

# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准

f=open("背影.txt",'r',encoding='utf-8')
fo = open('背影-频次统计.txt','w')
s = f.read()
lt = []
d={}
for i in s:
    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 ls:
    lt.append("{}:{}".format(k[0],k[1]))
fo.write(','.join(lt))
fo.close()
f.close()
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐