第二次作业

第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc
这个作业的目标 实现一个命令行文本计数统计程序。能正确统计导入的纯英文txt文本中的
字符数、单词数、句子数、代码行、空行、注释行等,并提供相应命令接口。
姓名-学号 戴畅-2022329301074

Gitee地址:https://gitee.com/scdaichang/zstu_study/tree/master

作业描述:

实现一个命令行文本计数统计程序。能正确统计导入的纯英文txt文本中的字符数,单词数,句子数。

具体命令行界面要求举例:
命令模式: wc.exe [参数] [文件名]

wc.exe -c file.txt 统计字符数 
wc.exe -w file.txt 统计单词数

扩展功能(加分项):统计代码行、空行、注释行等,并提供相应命令接口。

作业要求

  • 项目代码上传到自己的码云(需自行注册)。
  • 码云上传的项目要求必须通过多次提交(commit)体现各个版本更迭和运行结果截图。
  • 编写对应的单元测试。
  • 使用选用的IDE附带的工具进行performance test。(加分项)
  • 直接附上自己的码云仓库地址。

项目介绍

这是一个用 Python 编写的命令行文本计数统计程序,使用了PyCharm Community Edition 2022.3.2作为本项目IDE。并通过pyinstaller插件将python文件转化为可执行文件(.exe),且命令模式为: wc.exe [参数] [文件名]

  • 基础任务:
    统计导入的 纯英文txt文本 中的 字符数,单词数,句子数。

  • 拓展任务:
    统计导入的 纯英文txt文本 代码行、空行、注释行等,并提供相应命令接口。


使用说明

1.首先,打开wc.exe所在的文件夹,单击地址栏,输入cmd,如下图。

2.随后,按下回车,就会出现命令行,在光标跳动处输入指令即可,如下图。

3.最后,根据以下指令,键入命令行即可(可用Tab键快速补全)。

  • 基础任务:
 wc.exe -c [文件名] # 统计字符数量包含空格
 wc.exe -w [文件名] # 统计单词数量
 wc.exe -s [文件名] # 统计句子数量  
  • 拓展任务:
 wc.exe -l  [文件名] # 统计非空行行数
 wc.exe -el [文件名] # 统计空行行数
 wc.exe -cl [文件名] # 统计注释行数 
 wc.exe -x  [文件名] # 统计全部参数 

历程及运行结果

示例文本

点击查看示例文本text.txt
“我们不能用创造问题的思维来解决问题。”——阿尔伯特·爱因斯坦
“像会永生那样去学习,像明天就要死亡那样去生活。”——圣雄甘地
“远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。”——马克·吐温
“当你把欢乐带给别人,你会收获更多欢乐。你应该认真思考自己能给他人带来什么样的幸福。”——埃莉诺·罗斯福
“当你改变想法的时候,记得也要改变你的世界。”——诺曼·文森特·皮尔
“我们只有敢于冒险,生活才能变得更好。我们首先要承担的最大风险,就是变得诚实。”——沃尔特·安德森
“大自然已经赋予了我们实现健康和幸福的所有要素,但需要靠我们自己把这些要素整合起来。”——黛安·麦克拉伦
"We can't solve problems with the same thinking that created them." -- Albert Einstein

"Learn as if you will live forever. Live as if you will die tomorrow." -- Mahatma Gandhi

"Stay away from people who belittled your ideals. Narrow people often do that. Great people make you feel like you can be good too." -- Mark Twain

"When you bring joy to others, you get more joy. You should really think about how you can bring happiness to others." -- Eleanor Roosevelt

"When you change your mind, remember to change your world too." "-- Norman Vincent Peale

#"Life can only get better if we take risks. The biggest risk we have to take first is to be honest." "-- Walter Anderson

//"Nature has given us all the ingredients for health and well-being, but it's up to us to put them all together." "-- Diane McLaren

V0.1

命令行窗口输入 wc.exe 回车后的结果如下

V0.2

命令行窗口输入 wc.exe -c test1.txtwc.exe -w test1.txtwc.exe -s test1.txt 回车后的结果如下

V0.3

命令行窗口输入 wc.exe -l test1.txtwc.exe -el test1.txtwc.exe -cl test1.txtwc.exe -x test1.txt 回车后的结果如下

异常输出处理

单元测试

V0.2

下面通过使用python内嵌的测试框架unittest,加入四个测试示例进行单元测试,结果如下。

V0.3

同V0.2版本一样,使用测试框架unittest,对加入的测试示例进行单元测试,结果如下。

性能测试

由于Pycharm版本问题,不能使用PyCharm的Profile工具进行性能分析,所以利用 Python 内置的 cprofile 模块,可以清晰地找到程序中占总执行时间最高的部分,然后就可以专心优化这部分代码,而不必纠结于一些对性能影响比较少的操作。

V0.2

下图为V0.2版本性能测试结果

V0.3

下图为V0.3版本性能测试结果

心得体会

经过本次作业,我接触到了许多新知识。学习到了Python基础语法以及re库的使用,了解了使用pyinstaller工具转换成exe文件的方法,使用了测试框架unittest进行单元测试,最后还使用cprofile模块对程序进行了性能测试。在对exe文件测试的过程中,还掌握了命令提示符(CMD)这个Windows中的强大命令行工具,感受到了不同于图形化界面(GUI)的用户界面方式。总之,这是一次虽然走了一些弯路但是却一次很有意思的作业。

posted @ 2024-10-28 21:39  McCainnn  阅读(29)  评论(0编辑  收藏  举报