zoukankan      html  css  js  c++  java
  • 软件工程第二次作业----

    一、本次程序一共有4个主要功能及需求:

    功能1 小文件输入;单词总数不能包括重复的单词;

    功能2 支持命令行输入英文作品的文件名;

    功能3 支持命令行输入存储有英文作品文件的目录名,批量统计;只列出前10个高频词汇;

    功能4 从控制台读入英文单篇作品。

    二、部分功能的代码展示

    本次编程采用的Python,采用的Python版本是3.5.1.其中我觉得比较难的地方有:

    将字典转化为列表结构,进行键值的排序,以输出前十个高频词汇;

    1 def dict2list(dic:dict):#将字典转化为列表
    2     keys = dic.keys()
    3     vals = dic.values()
    4     lst = [(key, val) for key, val in zip(keys, vals)] 
    5     return lst
    1 print ('total', len(words_dict) , 'words',end='
    
    ' )
    2 for k,v in sorted(dict2list(words_dict), key=lambda d:d[1], reverse = True):
    3     count = count +1                          #按照value进行排序
    4     if count > 10:
    5         break                                         #输出十个次数最多的单词记录
    6     print ("{:<10}	 {:<15}".format(k,v) )

    正则表达式删除除英文及数字以外的其他所有字符;

    1    match = re.findall(r'[^a-zA-Z0-9]+', line)# 只要英文单词,删掉其他字符
    2         for i in match:
    3             line = line.replace(i, ' ')
    4         lines_list = line.split()#对单词进行统计
    5         for i in lines_list:
    6             if i not in words_dict:
    7                 words_dict[i] = 1
    8             else:
    9                 words_dict[i] = words_dict[i] + 1                        

     代码地址:https://git.coding.net/liuchengzhi0944/word_dirt.git

    三、功能展示

     

     

    四、PSP

     

    在完成文本输入这块,因为之前做过类似的语句,所以编写起来较为轻松;完成文本进行分析这部分功能时,因为不能熟练的使用正则表达式的及对字典这一数据类型的不熟悉,造成了超时;输出结果这一功能,严重超时,原因是在对字典进行排序的是遇到了困难,在如何输出十个单词数据及在输出对齐这里遇到了困难,;在对项目进行测试实现这一不部分,文件读取,文本的编码格式让我的测试工作也出现了麻烦。

     

  • 相关阅读:
    AD中各层的说明
    Altium designer的PCB设计规则
    python 的基础 学习 第三天 编码的初始
    python 的基础 学习 第三
    python的基础初始第二天
    python 的基础 学习 第一天
    Liunx ls命令
    Liunx cd命令
    CentOS 7系统关闭yum自动下载更新
    【转】XenServer体系架构解析
  • 原文地址:https://www.cnblogs.com/cherishcherry/p/7533226.html
Copyright © 2011-2022 走看看