第二周任务完成情况
一、理论学习
1、学习慕课《软件工程》第三章“单元测试”、第四章“软件开发过程”。
文章图片
文章图片
文章图片
2、阅读《构建之法》中的“个人开发技术”。
3、熟悉Google给出的python语言代码规范。
python语言代码规范学习链接:https://www.runoob.com/w3cnote/google-python-styleguide.htmlhttps://www.python.org/dev/peps/pep-0008/
【第二周任务完成情况】4、学习体会:
(1)“个人开发技术”一章讲解了程序效能的分析以及如何进行单元测试,以Java、C++等为例子进行了简单分析,通过学习,掌握了单元测试的一些基本概念,但在看这些例子的时候,由于对C类、Java等程序语言的陌生,具体的代码看不太懂,后来学习了慕课里面有关这方面的视频,还是慕课听起来更加容易懂,而且举的例子基本上是python的,大部分情况都能明白。
(2)python代码规范里面的内容,比如其中的行长度、括号使用、缩进、空行、注释、函数等内容的编写规范基本能够明白,在使用过程中大部分情况能够按照规范编写,但也难以避免的出现不符合规范的情况。此外,有关类这一块的一些规范还迷迷糊糊,不太懂,尤其是类属性、self等的使用还没弄明白。
二、实践学习
1、完成慕课第二章编程练习。
题目:请用python3编写程序,它可以实现对一个大容量英文文献进行分词与分句,并且能够对该文献内容的全文单词位置进行检索。更具体地,对于一个含有以分隔符(逗号“,”、空格“ ”、分号“;
”、英文句号“.”等非英文字母)分隔开的若干单词的文本文献(其中单词可能重复),程序要读入和存储整个文本,并根据输入的若干个单词进行查询,返回每个单词出现的所有句子以及是句子中第几个单词。
编程思路:
(1)每次读入一行文件,用正则表达式分离后,存入列表;
(2)判断列表中是否有句号、问号、感叹号,有的话则从该句子中找出要查找的单词的位置,然后将这句话从列表中移除,列表中剩下的单词保持不变,然后读入下一行数据并放入列表中,如此循环至文件最后一行。
编写结果见 https://github.com/lxxlccly/rjgc2 下的mktest2.py文件。首先,将需要查找的文件document.txt的内容设为:
文章图片
将需要查找的单词文件query.txt的内容设为:
文章图片
得到的运行结果如下:
文章图片
此外,编写了两个.bat文件进行push和pull,双击即可提交/拉取,代码如下:
文章图片
文章图片
在pycharm中也进行了github账号配置,配置好之后点击下图中的√:
文章图片
就会弹出如下界面,勾选需要提交的文件,点击commit提交即可,最后进行push。
文章图片
2、在pycharm中进行代码规范检查和性能测试。
(1)代码规范性检查
首先用pip install pylint安装了代码规范性检查工具,然后参考 https://blog.csdn.net/suzyu12345/article/details/80323067 在pycharm中进行了pylint相关配置,最后采用pylint对mktest2.py进行了代码规范性检查,结果如下,存在很多不合理的地方。
文章图片
然后对检测出来的每一项进行了修正,最终消除了上面提示的不规范的代码,结果如下:
文章图片
(2)性能测试
见 https://github.com/lxxlccly/rjgc2 下的mktest2_performance_test.py文件。利用profile.run()函数对代码进行了性能测试,结果如下:
文章图片
可以看到lower()函数占用了很多时间,然后就想着从这个地方对代码进行优化。下图倒数第五行为lower函数使用的位置,可见其处于循环中,通过分析得到word1是需要查找的单词,word1.lower()使用的次数等于循环次数,若将其放在循环外,word1.lower()就只需要使用一次。
文章图片
于是就将word1.lower()调整至了下图倒数第三行所在位置word.lower(),只需要使用一次。
文章图片
调整后可以看到lower()的使用次数和运行时间都大大降低,如下图所示。
文章图片
以上程序都是一次查找一个单词,每次都要重新读取文件,于是对程序进行了修改,可以同时查找多个单词,大大提高了效率。修改后的程序见 https://github.com/lxxlccly/rjgc2 下的mktest2_optimization.py文件。
三、学习记录
学习时段 | 学习内容 | 收获及存在的问题 |
2020.2.25 15:00-17:30 |
讲义“个人开发技术”章节 | 掌握了单元测试的基本内容 |
2020.2.26 13:00-17:30 |
慕课《软件工程》第三章、第四章 | |
2020.2.26 19:00-21:30 |
python代码编写规范 | 编写代码时仍存在很多不规范的地方,同时,刚接触编程,程序结构、算法、编程思想还有待改善 |
2020.2.27 13:00-18:00 |
慕课第二章作业编写查找单词程序 | |
2020.2.28 8:00-11:30 |
练习代码规范性检查及性能测试 | |
2020.3.1 10:00-11:00 |
对慕课第二章作业编写查找单词程序进行优化 |
推荐阅读
- 带娃儿的快乐,周日的感赏与投射日志(300)2019.6.2
- Win10一周年更新后电脑出现bug如何处理
- 爱上射击(周末约上朋友去罗浮山射击俱乐部打靶,步枪百发百中,8个十环)
- 华岩英才传习舍家长班“幸福人生”课程----夫妻关系(第二十四期第十次课程)
- 网络|音视频技术开发周刊 | 224
- 麒麟操作系统|麒麟操作系统 (kylinos) 从入门到精通 - 研发环境 - 第二十一篇 C++/C语言开发环境搭建
- 周鸿祎|周鸿祎出席厦门校友经济发展高峰论坛:数字孪生元宇宙让现实可计算|CEO说
- 新消费|元气森林收购最喜;喜茶联名《梦华录》;贝泰妮拟出资1亿元投资红杉基金;天图投资冲刺港交所|消研所周报
- 【房树人第二十二夜】等你归来
- 投稿|谁在管理360:周鸿祎的坚守与错失