第二次作业
第二次作业
这个作业属于哪个课程 | 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.txt
、wc.exe -w test1.txt
、wc.exe -s test1.txt
回车后的结果如下
V0.3
命令行窗口输入 wc.exe -l test1.txt
、wc.exe -el test1.txt
、wc.exe -cl test1.txt
、wc.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)的用户界面方式。总之,这是一次虽然走了一些弯路但是却一次很有意思的作业。