プログラミング入門 情報科学演習
2025.10.20

Back to index page



  1. 本日の作業内容

  2. 前回の復習

    IDLEのインタラクティブモードで基礎的な内容の確認を行いました.演算子,数値リテラル,文字列リテラルをはじめ,代入など多岐にわたる項目を学習しました.今後はそれらをスクリプトの中で使用していきますので,しっかりと習得していきましょう.

  3. 画面への表示

    • IDLE エディタの行番号表示
    • プログラムを作成して実行してみるとエラーとなる場合がよくあります.その際にエラーメッセージを IDLE のシェルに表示してくれるのですが,その時にはエラーが生じた原因が何行目にあるのかも教えてくれます.そのため,エディタで行番号を表示させることは必須と言っても過言ではありません.皆さんも行番号を表示させる設定を行っておいてください.

      • 設定
      • Options メニューから Show Line Numbers を選択するだけです.

        図1 行番号表示の設定

      • エラーメッセージの例
      • 図2 5行目の print の中で文字列を ' で閉じるのを忘れている場合

        図3 5行目の print の中の f 文字列で指定している変数 number は定義されていない場合

    • print関数
      • スクリプトプログラム
      • 初回の授業でちょっとだけ体験した Hello, world! という文字を画面に表示させるプログラムですが,そのときのようにテキストエディタにプログラムを記述して,それをターミナルで実行するという方法が今後の基本となります.そのようにエディタで作成したプログラムファイルをスクリプトといいます.ソースコードということもあります.

        print('Hello, world!')

      • コメント
      • プログラムは作成した本人以外にはなかなか理解しにくいものになることが多くあります.また,時間が経つと自分で書いたプログラムもよくわからなくなることもあります.そのため,プログラム中に簡単な説明文を書いておくことがよく行われます.

        Pythonでは記号 # の後に続く文字はその説明文(コメント)としてプログラムの動作とは関係なくなります.教科書にも書いてありますがハッシュ # はシャープ ♯ とは違う記号なので,間違えないでください.

      • 空行
      • プログラム中になんらかの処理の切れ目のところに空行を入れておくと全体を見渡した時にブロックとしての塊を認識しやすくなります.適宜空行を入れるようにしましょう.

        ときどきすべての行の間に空行を入れる人もいるのですが,それは逆に見づらくなりますので,きちんと処理の切れ目の部分に空行を入れるようにしてください.

      • print関数による画面への表示
      • 前回とりあえず見よう見まねで実行した Hello, world! を画面に表示したプログラムで使用しました.今後この print 関数は毎回必ず使用しますので,しっかりと理解してください.

        print 関数のツボ

        print('hoge')
        文字列 hoge を画面に出力
        print(hege)
        変数 hege の値を文字列として画面に出力
        print('hoge' + hege)
        文字列 hoge に続けて変数 hege の値を文字列として画面に出力
        print('hoge', hege)
        文字列 hoge を画面に表示した後で空白文字の後に変数 hege の値を文字列として画面に出力

        上で説明したように print 関数が出力するのは文字列のみです.文字列の中に変数の値を入れて出力したい場合には後述の f 文字列を称します.

    • 表示と改行
    • Python で他の言語と少し違うのは,この print 関数で画面に文字列を表示させる場合に文字列の最後に自動で改行してくれることです.他の言語の大半は自分で改行文字を入れないと改行してくれません.そのため,改行したくない場合には Python では逆に改行しないために文字列の表示の後に改行しないための引数が必要になります.

      print('Hello, ', end='')
      print('world!')
      

  4. f 文字列

    ここまでは文字列を画面に表示させることを行いましたが,プログラムにおいては計算した数値や変数の値などを表示させることが頻繁に行われます.そのため,数値や文字列を一緒くたにして表示させるための書式化を行うための方法の一つが f 文字列です.重要ですので,ぜひ理解してください.

    print(f'hoge {hege}')
    

    教科書の p.152 からより詳細な文字列の書式化の説明があります.そのときにまた詳細は学習しなおします.
  5. 乱数
  6. 乱数はこの授業ではほぼ毎回使用する非常に重要な機能です.教科書 p.98では2種類の乱数を発生させる関数が紹介してありますので,違いを理解してどちらを使用するか間違えないようにしましょう.

    1. モジュールのインポート

      乱数を発生させる関数を読み込むためにはモジュールの読み込みが必要です.今回は,教科書 p.98 にあるモジュールの random を読み込みます.読み込むメソッドは import です.

    2. randint()

      整数の乱数を発生させる際には,教科書 p.98 にある randint() を使用します.次のプログラムは3桁と1から20までの乱数を発生させるプログラムです.

      import random
      
      num1 = random.randint(100, 999)
      num2 = random.randint(1, 20)
      
      print(f'Random number with 3 digits: {num1}')
      print(f'Random number between 1 and 20: {num2}')
      

      Random number with 3 digits: 473
      Random number between 1 and 20: 16
      

    3. random()

      関数の random() は0から1の間の小数を発生させる関数です.

      import random
      
      num = random.random()
      
      print(f'Random number between 0 and 1: {num}')
      

      Random number between 0 and 1: 0.7772063796213998
      

    4. ファイル名の注意

      乱数を使用する時にモジュールの random を読み込みます.そこで,注意が必要なのですが,もし自分が作ったプログラムを random.py として保存してしまうと,モジュールとしてその自分のプログラムを読み込むことになるので,当然エラーとなります.ということで,モジュールと同じ名前のファイル名は決してつけないでください.

    5. その他の乱数発生関数
    6. 実は Python には他にもたくさんの乱数を発生する関数があります.便利そうなものを2つほど紹介しておきます.

      • randrange()
      • この関数は以下のように引数を用意します.

        random.randrange(start, stop, setp)
        

        start 以上で stop 以下の整数の中から乱数をつくりますが,start から step 分とびとびの値から乱数を選びます.なので,start が偶数で step が 2 だと,偶数の乱数を発生することになります.

      • gauss() と normalvariate()
      • 正規分布に従った乱数を発生させる関数です.詳細は説明しませんが,データ処理の例題データを作る際に活用できます.

  7. 実習

    本日の演習問題です.予習用に一部が見えています.

  8. 本日のまとめ

    • print 関数
    • print 関数は引数として与えた文字列を画面に出力します.出力するのは文字列であることに注意しましょう.変数を引数にすると,変数の値を文字列として表示します.

    • f 文字列
    • 文字列や変数の値を混在させて表示させる際に,文字列の結合やカンマで区切って引数に加えるなどの方法では見た目が煩雑になりますので,文字列に値を埋め込む方法があります.それが f 文字列です.この授業では今後毎回必ず使用しますので,しっかり理解しておきましょう.

    • 乱数
    • プログラム上で乱数を使うために random モジュールをインポートして関数を用いて種々の乱数を発生させることを学習しました.今後も毎週乱数を使用しますので,早く慣れていきましょう.

  9. 次回の予習範囲

    教科書p.45-73までの if 文を扱います.

  10. 宿題

    課題の提出においては,解答用紙を使用します.以下にサンプル(あくまでサンプル)を用意していますので,確認してください.

    解答用紙(サンプル)

    開いてみるとわかるように,まずは上部の学生番号と氏名を自分のものに変更してください.その上で,プログラム本体の中にも学生番号を出力する print 関数がありますので,その部分の学生番号も自分のものに変更してください.

    図4 解答用紙見本

    実際のプログラムはその学生番号を出力する print 文の後に作りますが,最後にハイフンのラインを出力する print 文の前までとしてください.そのハイフンラインは必要ですので,削除しないでください.

    課題の提示と提出にはMoodleを使用します.課題の公開は原則として授業翌日の火曜日の10:00以降で,提出締切りは翌週の月曜日の13:00です.


目次ページに戻る