第二周任務完成情況


一、理論學習

1、學習慕課《軟件工程》第三章“單元測試”、第四章“軟件開發過程”。

        

2、閱讀《構建之法》中的“個人開發技術”。

3、熟悉Google給出的python語言代碼規范。

python語言代碼規范學習鏈接:https://www.runoob.com/w3cnote/google-python-styleguide.html      https://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

 對慕課第二章作業編寫查找單詞程序進行優化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM