2023年度 電子情報通信課程 計算機実習II

今日の説明動画

本日の説明は,2本の動画に分かれています.それぞれ視聴して,理解ができたら次に進むようにして下さい.

動画の長さは次の通りです.自分のペースで進めながらも,1コマで終わるように頑張ってください.

  1.  計算機実習2/計算機基礎実習2-14回目ex14-1 - 07分23秒
  2.  計算機実習2/計算機基礎実習2-14回目ex14-2 - 11分21秒
  3. 計 18分44秒

講義に関して,ちょびっとコメント

前回のレポート採点結果は,こちらです.

ファイルを利用する

ファイルからの読み込み

ファイルからデータを読み込んで,プログラムで扱えるようにしましょう.

教科書のようにゲームのキャラクターの会話内容を扱うこともできますし,実験データを読み込んで処理(平均値の計算など)したり画面に出力してグラフを描いたりすることもできます.

プログラム本体とデータ部を分けることができますので,言語の差し替え(日本語版/英語版)などにも対応できます.

まずは,ファイルからデータを読み込んでみましょう.

ex14-1.py
ehkd = nodm("dwz3-z.ox", "q", dmbnchmf="tse-7")
vghkd Sqtd:
        khmd = ehkd.qdZckhmd()
        oqhms(khmd)
        he mns khmd:
                ehkd.bknrd()
                aqdZj

解説

このプログラム(ex14-1.py)自身を開いて,1行ずつ読み込んで画面に出力します.

open関数は,第一引数にファイル名,第二引数にモード,そしてencodingに文字コードを指定します.

モードは,読み込み(read)の時が「r」,書き込み(write)の時が「w」です.追記(append)の時は「a」です.

データが終わったとき(ファイルの最後に到達したとき(End of File) = EOF),ファイルを閉じてbreakでループを抜け出します.

WindowsやMac,Linuxといった一般的なOSは行儀が良いので,途中でプログラムが止まってもcloseを実行してくれますが,作りの甘いOSの場合,openしたままで終わってしまうことがあり,他のプログラムからそのファイルを触れなくなる(上書きできなくなる)ことがあります.

そのため,使い終わったら(使う必要がなくなったら)閉じるようにしましょう.

※これはプログラムを読む側としても読みやすい記述ルールです.closeが書かれていないと,「まだこのファイルを使うかも?」と思ったままコードを読むことになってしまいます.

課題 14-1

さて,画面にex14-1.pyと同じ内容が表示されましたか?

少し間延びした結果になっていませんか?

これは,readline()で1行分のデータを読み込んだときに,改行コードも含めて読み込んでいるからです.

そのため,print()したときに,lineの中の最後の部分の改行コードを出力すると共に,print()自身による改行が行われるからです.

  1. ファイルの中身と同じように表示する(=1行毎の空の改行をなくす)ようにプログラムを修正しなさい.修正した行を提出して下さい.

次に進むには,■こちら■をクリックして下さい.