Differences between revisions 4 and 5
Revision 4 as of 2019-11-27 11:33:00
Size: 1413
Comment:
Revision 5 as of 2019-11-27 11:35:33
Size: 1615
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
 * 大変恐縮です.  * 重要なお知らせです.
Line 15: Line 15:
    * どうせ延期するなら,教育効果を考え,出題数も減らし,もう少しだけ易しい問題に切り替えようと思っております.     * どうせ延期するなら,教育効果を考え,出題数も3問に減らし,もう少しだけ易しい問題に切り替えようと思っております.
Line 17: Line 17:
     * 3つのうち1つに絞るという発想では,期末試験で失敗しますので,この機会に,この3点についての基本を押さえておいてください.



授業-ソフトウェア工学 > 2019年度 > 第08回


授業-2019年度-ソフトウェア工学-第08回

*

(公開)


  • 01~15の数字をクリックすると当該回のページに移動します
    • 数字の後の星印(*)はスタッフページへのリンクです
*

*



概要

  • 重要なお知らせです.
    • 本日11/27は第1回中間試験を実施する予定とお知らせしていましたが,
    • keio.jpでもご連絡したように,1週間延期とさせてください.
      • 皆さんとお約束していた,勉強用資料が公開できていなかったことに,今更ながら,気づきました.
        • そのまま実施するわけにはいかないので,試験は1週間延期して,12/04実施とさせてください
      • また,本日11/27実施のために準備していた試験問題は少し難しすぎたかもしれないと思い直しています.
        • どうせ延期するなら,教育効果を考え,出題数も3問に減らし,もう少しだけ易しい問題に切り替えようと思っております.
        • 特に,関数,リスト(list),辞書(dict)については,例題を復習しておくことをお薦めします.
          • 3つのうち1つに絞るという発想では,期末試験で失敗しますので,この機会に,この3点についての基本を押さえておいてください.
          • もちろん,キーボード入力や,画面表示,並びに文字列処理は,当然のように含まれます.
      • 補講日と三田祭休みが連続したため,2週分ブランクもありますし,11/27は講義で勘を取り戻しましょう
  • 試験を一週間延期する代わりに,11/27は,(当初11/13に実施予定でした)ファイル入出力の話題で講義をします.
    • これは,第1回中間試験の範囲には含めません.
*


概要


概念編


実習編

  • 前回ダウンロードしたかもしれませんが,2週間空きましたし,再掲します

    例題 1

    読み込み

    read()メソッド

    open()/Close()

    Ex_05_001a_file_read.py

    例題 2

    read()メソッド

    with文の利用

    Ex_05_002a_file_read_with.py

    例題 3

    readline()メソッド

    Ex_05_003a_file_readline.py

    例題 4

    readline()メソッド

    Ex_05_004a_file_readlines.py

    例題 5

    ファイルオブジェクトでループ

    Ex_05_005a_file_read_iterator.py

    例題 6

    書き出し

    write()メソッド

    open()/Close()

    Ex_05_006a_file_write.py

    例題 7

    write()メソッド

    with文の利用

    Ex_05_007a_file_write_with.py

    例題 8

    writelines()メソッド

    Ex_05_008a_file_write_lines.py

    例題 9

    CSVファイル

    rstrip()メソッド

    split()メソッド

    Ex_05_009a_csv_read_iterator.py

    例題10

    csvモジュール

    csv.reader()

    Ex_05_010a_csv_read_by_csv_module.py

    例題11

    csvモジュール

    csv.writer()

    Ex_05_011a_csv_write_by_csv_module.py

    例題12

    例外処理

    try-except文

    else/finallyブロック

    _05_012a_exception.py

    データファイル(txt)

    data.txt

    データファイル(csv)

    data.csv

*

*


今回の内容

  • 内容
    • 以下のページ(本サイト内)にまとめています.
      • ファイル入出力

        • Python/Langから辿っていただいても到達できます

          • 入出力⇒ファイル入出力
        • 試しに,存在しないファイルを読み込みオープンしてみましょう
      • 例外処理

        • Python/Langから辿っていただいても到達できます

        • 但し,今回は,raise文による例外送出や,ユーザ定義例外については扱わず,これまで,見かけてきた実行時エラーへの対応を中心に扱います


課題

  • 基本課題1: 単語の出現頻度表
    • 単語の出現頻度表作成は,以前にも取り組みました
    • やっていただくこと
      • 頻度を調べるデータをファイルから読み込んで,ファイルに書き出すようにしましょう.
        • 結果を画面に表示するプログラムを配布します
        • (1) 結果をファイルに書き出すように書き換えてください
  • 基本課題2: 都道府県ごとの統計(面積,人口,人口密度)
    • やっていただくこと
      • (1) CSVファイルなのですが,1000以上の数値はカンマ区切りで与えられているので,文字列としてCSVファイルが作られます
        • 1000以上の数値からはカンマを取り除く必要があります.
      • (2) 1行目のヘッダと2行目の全国データは取り除きましょう
      • (3) 統計情報から,人口密度を計算し(人口÷面積ですね),統計に含まれている人口密度のデータと比較してください
  • 基本課題3: 新幹線の特急運賃の計算
    • 新幹線の特急運賃の計算は,以前にも取り組みました
    • やっていただくこと
      • 以前やったBP_04と同等のものを配布します
      • (1) 乗車料金,特急料金の表をファイルから読み込みましょう

    基本課題1

    BP_05_001a_word_frequency_list.py

    単語の出現頻度表

    kenpo.txt

    →データファイル(日本国憲法・前文)

    基本課題2

    BP_05_002a_prefecture_info.py

    都道府県ごとの統計(面積,人口,人口密度)

    prefecture_data_2015a-processed.csv

    →データファイル(CSVファイル)

    基本課題3

    BP_05_003a_express_fare_table.py

    新幹線の運賃表

    BP_04_001a_price_table_test.py

    テストドライバ

    BP_04_001a_price_table_print.py

    結果の表の表示

    fare_table.csv

    →データファイル(乗車料金;CSVファイル)

    express_fare_table.csv

    →データファイル(特急料金;CSVファイル)

*


プログラムの説明 (例題と課題)

[ edit ]

  • ファイル入出力
    • 基本的なファイル入出力
      • オープンとクローズ
      • with文
    • CSVファイルの取り扱い
      • 文字列のsplitメソッド
    • 単語の出現頻度表
      • ファイルからテキスト入力⇒結果をファイルに保存
    • 都道府県ごとの統計(面積,人口,人口密度)
    • 運賃表
      • ファイルから読み込んでみましょう
  • 例外処理
    • 今回は,基本的な内容にとどめましょう
      • よく見かける例外と,その対応の例を示します.
      • ユーザ定義例外などは,高度な内容なので,今回は取り扱いません.
    • よく見かける例外
      • 実行時エラーの捕捉と対応
        • 数値計算
        • 組込み関数やメソッドでの値エラー(ValueError 例外)と型エラー(TypeError)

        • データ操作
          • リスト操作(シーケンス操作)での添え字エラー(IndexError 例外)

      • 辞書アクセスでのキーエラー(KeyError例外)

      • キーボード割込み
      • ファイル操作/入出力関係
*


*

  • 重要なお知らせです.
    • 本日11/27は第1回中間試験を実施する予定とお知らせしていましたが,keio.jpでもご連絡したように,1週間延期とさせてください.
      • 皆さんとお約束していた,勉強用資料が公開できていなかったことに,今更ながら,気づきました.
        • そのまま実施するわけにはいかないので,試験は12/04実施とさせてください
      • また,本日実施のために準備していた試験問題は少し難しすぎたかもしれないと思い直しています.
        • どうせ延期するなら,教育効果を考え,出題数も3問に減らし,もう少しだけ易しい問題に切り替えようと思っております.
        • 特に,関数,リスト(list),辞書(dict)については,例題を復習しておくことをお薦めします.
          • 3つのうち1つに絞るという発想では,期末試験で失敗しますので,この機会に,この3点についての基本を押さえておいてください.
  • 試験を一週間延期する代わりに,11/27は,(当初11/13に実施予定でした)ファイル入出力の話題で講義をします.
    • これは,第1回中間試験の範囲には含めません.

SoftEng: 2019/08 (last edited 2019-11-27 13:58:53 by TadashiIijima)