一、優缺點分析
1、缺點:
① 數學問題的生成中只考慮了消除乘除法加括號的無效情況(例如3*(4+5)或(6*5)/2這樣的計算),但沒有去掉加減法加括號的無效情況(例如(4+(7+8))或(3-(2-1)));
② 專案**中變數的命名沒有嚴格安裝規範來,有些命名有點相似且無特定含義,給閱讀**的過程中造成了不小的困難,不方便理解,看起來會有些混亂。
2、 優點
① **是用python寫的,能夠熟練運用各種迴圈判斷語句和列表,並且其中用到了許多便利簡潔的函式,比如getcwd()獲取檔案位址、lstrip()截掉左邊字串、re.match()通過正規表示式進行匹配等等;
② 一對括號的插入,是在已知固定運算元個數的情況下,在包含所有括號對可能位置的列表中,random挑選能夠插入的位置,因此得出來的數學題具有一定隨機性,這個演算法思路很獨特;
③ **中對於中文字元的處理非常簡便,值得參考,主要是要記得儲存基本資訊txt為utf-8的格式,呼叫open函式時也encoding=「utf-8」方式開啟,然後就可以直接進行處理了;
④ 初高中的數學題要求插入根號平方和三角函式,因為random.random()範圍是[0,1),所以將其與小於1的數(比如0.3、0.5)做比較,以此來達到隨機的目的;
二、具體功能實現
1、inputinformation():錄入附表中基本資訊,用read函式讀取txt檔案,並根據換行符分割成列表:
2、landaccount():登入個人賬戶,首先通過find判斷輸入格式是否正確,接著在列表中迴圈,看是否匹配到正確的賬戶名和密碼:
3、generatequestions():隨機生成小初高的數學題,用了random函式實現隨機化,並且還要去除掉括號的無效情況;
4、outputfiles():生成資料夾和數學題txt,用datetime得到當前時間並格式化轉為字串,之後生成相應檔案:
5、oldfiles():用於查重,將過去同一賬戶同一學歷生成的題目儲存到乙個字串中,並在生成每個數學題時通過find來比較是否有相同的題目:
三、 個人總結
我使用的是c++進行書寫,在寫完後才發現用這種語言寫的童鞋比較少,後來想想發現c++書寫的**量較大,書寫不易;在當今計算機軟體開發的行業中多數使用python進行敏捷開發;而且python語言獨立於平台性質,同時開發周期短,程式設計師易於上手;同時底層封裝性強,**更加簡潔;
原來如此簡單
你對我說美麗的女孩子是種危險的動物,她們詭譎善變,揚起貓一樣的觸鬚來挑動你身上的每一處情感神經。不過我想不管是哪種型別的女孩子,在她的心中的某個角落一定藏著乙份對於純美愛情的嚮往,只是表現出來的樣子不同罷了!喜歡彈鋼琴只彈黑鍵,喜歡把熱牛奶放在左邊,喜歡對著毛絨娃娃傾訴我對你的想念。想讓你知道我就是...
MS UI Automation原來如此
最近參加了公司的乙個program competition,做個小工具。其中涉及到乙個盲點。需求是 在 中訪問另乙個program的程序,獲取它的視窗控制代碼,並在它的視窗上對某乙個控制項進行滑鼠點選操作以執行相應的命令。google來baidu去,終於有思路了 原來需要用到ms的ui automa...
python裝飾器 原來如此簡單
今天整理裝飾器,內嵌的裝飾器 讓裝飾器帶引數等多種形式,非常複雜,讓人頭疼不已。但是突然間發現了裝飾器的奧秘,原來如此簡單。coding gbk 示例1 使用語法糖 來裝飾函式,相當於 myfunc deco myfunc 但發現新函式只在第一次被呼叫,且原函式多呼叫了一次 defdeco func...