软件工程第1次作业

软件工程第一次作业


要求0:

作业要求地址:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2110

要求1:

git仓库地址: https://git.coding.net/baiys581163com/wf.git

要求2:

PSP阶段表格

PSP阶段 计划所需时间% 实际所需时间%
计划 30 20
*明确需求和其他相关因素,估计每段时间成本 10 5
开发 50 64
*需求分析 5 5
*生成设计文档 5 5
*设计复审 5 2
*代码规范 4 2
*具体要求
功能1 2 2
功能2 2 2
功能3 2 2
*具体编码
功能1 5 15
功能2 5 15
功能3 5 10
*代码审查 5 2
*测试(自测,修改代码,提交修改) 5 2
报告 20 12
*测试报告 10 5
*事后总结 10 7

分析原因:这次项目时间和预计相差太多的主要原因是,

  • 1.对python编程不够熟练,实现目标编程时间长。
  • 2.缺少整体分析的思想。

要求3:##

思路###

  • 1.从实现基本功能入手,觉得清理文本中的特殊符号比较困难。
  • 2.感觉3个功能没什么差别,写个父类,具体处理写子类分析。
  • 3.最后解决读取路径下的文件

代码展示###

  • 1.使用空格分隔单词,结果把每个字符分隔开了,debug了几次,发现.readlines()和.readline()区别.readline()一次读取一行,.readlines()一次读取整个文件,保存在一个list中,每行作为一个元素。本来以为没什么差别,结果得到的结果差距挺大。
def readTxt(path):
    filename = open(path,'r', encoding="utf-8")
    rline = filename.readlines()
    # rline = filename.read()
    # print(collections.Counter(rline))
    words = []
    for line in rline:
        #print(line)
        line = re.sub("[\s+\.\!\/\?_,$%^*&(+\"\')]+|[+——()?【】“”!,。?、~@#¥%……&*()]]+'", " ", line.lower())
        # line = re.sub("[\u0060|\u0021-\u002c|\u002e-\u002f|\u003a-\u003f|\u2200-\u22ff|\uFB00-\uFFFD|\u2E80-\u33FF]", '',  line)
        line = line.strip()
        #print(line)
        word = line.split(' ')
        words.extend(word)
    #print(words)
    # print(collections.Counter(words))
    filename.close()
    return words
  • 2.清理数据,虽然对正则表达式不是很会写,但还好网上找到了个大差不差的,稍作修改也就能用了。
line = re.sub("[\s+\.\!\/\?_,$%^*&(+\"\')]+|[+——()?【】“”!,。?、~@#¥%……&*()]]+'", " ", line.lower())
  • 3.发现字符串和别的语言不同的地方,可以从尾部开始查询,以及字符串截取
files = os.listdir(pathn[6:-5])

posted on 2018-09-21 12:07  baymax2016011926  阅读(225)  评论(1编辑  收藏  举报