ソフトウェア工学章プログラミングの問題 - 英語文学の検索
まず、プログラミングのアイデア
初心者のコードのプログラミングのアイデアの汚いので、次のように要約されている自分のプログラミングのアイデアで、この時にモジュールのプログラミングに基づいて行われるべきソフトウェアエンジニアリングを通じて学習した後:
1、クエリ文書とファイルに、文字列に変換した後、からなる文章や単語のリストに分け
図2に示すように、単語(X、Y)座標位置決めするためのループを使用して、属性リスト
図3は、機能問い合わせを書き込むように対応する座標文書出力におけるクエリ単語と単語
4、書き込みリピート機能、クエリファイルで動作するすべての単語のクエリ機能
第二に、コードが書かれています
図1に示すように、プログラミングのアイデアによれば、コードは、4つのモジュールに1つずつ書き込まれ、各モジュールは、最終的に、アダプタので、コード全体が一体であることを、実行することができ、次のコードが得られます
2.次のように書いた後、やや面倒見つけ、正規表現を学習することにより、最終的なプログラムを分割するために、ファイルの文書やクエリへの簡単な方法を取ることです。
1 #- * -コーディング:UTF-8 - * - 2 #_author_ = 'lixiaohua' 。3 。4 #クエリに開いているドキュメント、ケース、文書他のシンボル処理空間を低下させる文献ワードを変換する 。5 インポート再 。6 図7を開く(と' literature.txt '、' R&LT ' :)AS F 8 文字列= ()に達し、f.read 9。 A str_list = string.lower() 10 11。開く(と' quety.txt '、' R&LT ' )AS F : 12は、 文字列= 達し、f.read()は 13であります= str_query string.lower() 14 word_query = re.split(' [^ A-ZA-Z] + ' 、str_query) 15の 16 #組の文書として処理各合成文リストは、その後、文は、文字列に分割されています単語リスト 17。 I = 0 18である words_sum = 0 19。 ながら I < lenの(str_list): 20である IF str_list [I] == ' ' : 21である 。words_sum + 1 = 22であり、 I = 1 +。 23である他: 24 I + 1 = 25 印刷(「文の数:」 、Words_sum) 26であるワードstr_list.split =(' ' 、Words_sum) 27 28 #はワード位置照会ワード座標(X、Y)と各ループ文を横断するために使用される29 DEF A(word_query): 30 X = 0 31れる wordquery_sum = 0 #単語の初期値はゼロ存在しない設定値が変化しない場合、単語は存在しない32 ながら X < :words_sum 33は ワード= re.split(' [^-ZA-Z]を+ ' 、単語[X]) 34が Y = 0 35 ながら Y < lenの(ワード): 36 IF ワード[Y] == word_query: 37 。Y = + 1 38である wordquery_sum = Y 39 プリント(Y ' / '、1 + X。 ) 40 他: 41である 。Y = + 1 42である 。X + 1 = 43である IF wordquery_sum == 0: 44は プリント(' なし' )
#繰り返し書込み機能 45 DEF B(word_query): 46である、 私は= 0 47 ながら私は< lenの(word_queryを): 48 (word_query [I]) 49 I + = 1 50 " B(word_query)を"
19個の質問を見つけたコードの検出を調整するために、このツールを使用してツールのpylintを、ダウンロードしてインストールするには3:
一つ一つを変更することで、残りは主にPython言語のために、非標準の命名問題であるに精通していない、そこに凹凸が変数の使用で問題につながるした後、後工程で徐々に改善されます:
第三に、プログラムのパフォーマンスの解析
、プログラムモジュールの性能解析プロファイルを導入することにより、1000個のクエリの最後の言葉は、5Mの文献は、次のような結果が得られたファイル:
問題を分析し、所定の5分よりもはるかに長く実行します。
1、()、修正するspilitの機能の位置は、関数がループ内で呼び出されている変更後のわずかな改善プログラムの実行時間を避けるために、33行(行うには先頭に)機能を分割します。
DICの形態であれば2、位置決め要素のリストを使用して要素を検索するとき、コンテンツ全体のDICではないので、それは非常に、効率を強化するように/キーにより、実際の位置要素の値物の乏しい効率でありますトラバーサルが、時間が限られている、将来はさらにプログラムを改善します。
IVの概要
プログラムは、ソフトウェア工学プログラムを学習した後、最初の独立した完全な仕事ですさらに可能にする必要性が、唯一の電流による、実際には何の手がかりはない事を発見した品質が理想的ではないプログラミング、基本的なプログラミング言語を習得pythonの研究を強化します。