第三次作业

本文介绍了一个使用Python编写的简单程序,用于从文本文件中统计单词出现的频率,并输出出现次数最多的前十个单词。该程序包括文件读取、单词频率统计和结果显示等功能。

一、
学号:2017****07223
姓名:许乾坤
码云:https://gitee.com/xqk1012/word_frequency
二、 程序分析

# filename: word_freq.py
# 阅读注释,在所有pass处删除pass,添加代码

from string import punctuation


def process_file(dst):     # 读文件到缓冲区
    try:     # 打开文件
        f = open(dst)
    except IOError as s:
        print (s)
        return None
    try:     # 读文件到缓冲区
        bvffer = f.read()
    except:
        print ("Read File Error!")
        return None
    f.close()
    return bvffer


def process_buffer(bvffer):
    if bvffer:
        word_freq = {}
        # 下面添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq
        for item in bvffer.strip().split():
            word = item.strip(punctuation+' ')
            if word in word_freq:
                word_freq[word] += 1
            else:
                word_freq[word] = 1
        return word_freq


def output_result(word_freq):
    if word_freq:
        sorted_word_freq = sorted(word_freq.items(), key=lambda v: v[1], reverse=True)
        for item in sorted_word_freq[:10]:  # 输出 Top 10 的单词
            print(item)

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('dst')
    args = parser.parse_args()
    dst = args.dst
    bvffer = process_file(dst)
    word_freq = process_buffer(bvffer)
    output_result(word_freq)

三、性能分析结果及改进情况

(1)指出了正确的执行次数最多的代码和执行时间最长的代码

                                                                   执行次数最多的代码

1630885-20190408213401982-849061279.png

                                                                    执行时间最长的代码

1630885-20190408213511846-193489915.png

(2)给出改进优化方法,根据方法的正确性以及语言描述质量给分

     答:改进界面、显示优化,使结果明确展现

(3)给出改进代码

#定义一个getstr类,对结果输出格式进行定义
def getstr(word,count,allwordnum):
    countstr=word+'----'+str(count)+'----'+str(allwordnum)
    return countstr
print('出现单词:'+word.1just(18)+'出现次数:'.1just(0)+str(cnt).1just(10)+'文章单词总数:'.1just(0)+str(allwordnum))

outdata.write(getstr(word,cnt,allwordnum)+'\n')

四、运行结果
1630885-20190408213655224-1029672383.png
五、总结和反思
程序设计基础很差,需要极大的提升,经过此次任务我发现我对python不懂得还有很多虽然同学帮助并且讲解但还是不熟练还需要多加练习

转载于:https://www.cnblogs.com/xqk1012/p/10673576.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值