応用プログラミング及び実習 2020年度 ex07†
ex07A†
- 右のリンク先のテキストファイルをいつもの場所に保存し,エディタで内容を確認ましょう: ex07score.txt
名前,1つ目の試験の点数,2つ目の試験の点数
- 上記のように,このファイルの各行には,「IDを表す文字列」,「1つ目の試験の点数」,「2つ目の試験の点数」という3つのものがカンマ区切りで記されているはずです:
- 「1つ目の試験の点数」は浮動小数点数,「2つ目の試験の点数」は整数です
- 右のリンク先のプログラムをいつもの場所に保存し,エディタで内容を確認ましょう: ex07score_main.py
- このプログラムの内容を修正・変更してはいけません
- このプログラムは,import で別のモジュールをインポートしています
- 上記のプログラムが正しく動作するように,インポートされる側のプログラムを作りましょう.
次の二つの関数を定義してください.
- readData(filename)
- 引数 filename で指定されたテキストファイルを読み込む(ファイルの内容については, ex07score.txt の説明参照).
「IDを表す文字列」,「1つ目の試験の点数」,「2つ目の試験の点数」という3つのリストに値を格納し,それらを返す.それぞれのリストに格納する値の型は,ex07score.txt の説明を参照し,必要に応じて正しい型に変換すること.
- argMinMax(X)
- 引数 X で指定されたリストの中から最小値と最大値を探し,それらの要素番号を返す.
- プログラムを正しく完成させて ex07score_main.py を実行すると,次の出力が得られるはずです.
1つめの試験の点数の最小: ほげお041 -60.0
1つめの試験の点数の最大: へなこ117 -1.0
2つめの試験の点数の最小: ほげお291 0
2つめの試験の点数の最大: へなこ118 100
- 完成したプログラムを提出しましょう. ex07score_main.py の提出は不要です.
ex07B†
https://www.gutenberg.org/ebooks/11
- 上記のリンク先の Plain Text UTF-8 の先のテキストファイル 11-0.txt をいつもの場所に保存し,エディタで内容を確認しましょう.
- このファイルは,Project Gutenberg が提供している,"Alice's Adventures in Wonderland" by Lewis Carroll (ルイス・キャロル著「不思議の国のアリス」)の全文テキストデータです.
- Project Gutenberg は,著作権の切れた英文学作品等を電子化してインターネットで公開するプロジェクトです(Wikipediaの記事).
- この課題とは関係ありませんが,日本語の文学作品についての同様のプロジェクトに「青空文庫」というものもあります(Wikipediaの記事).例: 中島敦著「山月記」
- ex07wordcounter.py をいつもの場所に保存して,エディタで内容を確認してから実行してみましょう.
上記のテキストファイルの本文から単語を切り出したものが表示されるはずです.
- このプログラムの次の2箇所のコメント部分にコメントに記された処理を行うコードを書いて,プログラムを実行すると単語数の上位5位までが出力されるようにしてください.
### ここで item の文字列を全部小文字に変換しよう
### ここで辞書に登録しよう.詳しくは課題のページ参照
これら部分以外は修正不要. 2つ目のコメントの箇所については,次のように考えたら良いでしょう.
単語 item がすでにディクショナリに登録されているか調べて,
- 登録されてなければ,その単語をキーとして,値 1 を登録
- 登録されていれば,値に 1 を加える
- 完成したプログラムを提出しましょう.