プログラミング入門I
2023.10.02
Pythonのインストールと基本操作
2023年度から本学科のプログラミング学習で使用する言語がPythonに変わりました.以下のような事情で変更することとなりました.
この授業は演習科目ですので,実際にみなさんが自分でプログラミング作業を行なうということを前提にしています.教室に各自のノートPCを持ち込んで作業してもらいます.反転授業という形態で実施ますが,一回分の作業内容の紹介と注意点,重要なポイント,教科書の補足説明などをこのWebページで事前学習し,授業時間に実習と時折確認テストに取り組んでもらい,授業の後には課題提出を行ってもらいます.以下のことを覚えておいてください.
自動で出欠を確認できるようにするため,教室のPCにログインしてもらいます.他学科の学生さんはアカウントを作成する必要がありますので,私まで申告してください.
事前にその回の授業で扱う教科書の範囲を指示しておきますので,その範囲を自分で予習してください.実際にパソコンを使用した学習が望ましいです.予習のための実習問題も次の週のWebテキストにリンクを張りますので,それを行ってください.第3回以降は宿題を用意していきます.
実習課題を用意しますので,その課題のプログラミングを実習として行います.もちろん,教科書はしっかり読んでおいてください.
実習課題は教科書に書いてあることを応用する問題を中心に用意されています.そこで,自分では分からないこともときどき出てくることがあります.質問をすることで,理解を深めて行くことができますので,遠慮なくどんどん質問をしてください.
教科書の順番でプログラミング作業を勉強していきますが,教科書ではまだ出てきていない処理も使用します.それは「乱数」の発生の処理です.
教科書では,パラメータを自分で入力するために input() という関数を使用しますが,この授業では input() を使用しないために乱数を用います.理由は,大勢の課題を採点する際に, input() では採点を自動化できないからです.そのため,毎回値が変わるようにするために乱数を使用します.使用方法は,Web版のこのテキストで詳しく紹介します.
プログラミングとは面倒な処理をコンピュータにやらせるためにあるものです.
自分が楽をするためにあるので,そのような処理を考えることが重要です.数字を100個表示するプログラムでも,表示させる命令は1つで済ませるのが,プログラミングです.これについては,必要に応じてその都度説明します.ただし,大事な言葉として「アルゴリズム」というものがあります.これはどのように処理を行うかの流れのようなものですが,これを考えることが重要です.以下の例で見てみましょう.
12という整数の約数を見つけるプログラムを作るとします.以下のような手順をみなさんは考えるでしょう.
第3回以降では宿題として課題を課します.宿題はレポート提出システムを用いて閲覧できるようにします.Moodle ではありませんので,本学科以外の学生さんは登録が必要です.受講の際には連絡してください.
また,単元の区切りで授業中に理解度確認のための小テストを実施します.実施の形態はまだ未定ですが,現時点では,この教室のPCを利用して特殊な環境で行う予定です.時期が近づいてきましたら予稿演習を行いますので,またご案内します.
教科書のp.376の「A-1 Pythonのインストール」にある通りに作業すると簡単にインストールできます.現時点でバージョンは3.11.5になっていますので,そこだけ違いますが,後は特に問題ありません.
教科書p.380の「A-2 プログラムの実行」では,いくつかのプログラムの実行方法についての説明があります.教科書では第1章で「インタラクティブシェル(基本対話モード)」で終始説明がなされていますが,それなりの長さのプログラムを作るとなると,どうしてもエディタでプログラムを書いて実行する形式の方が便利なので,第2章以降はIDLEを前提に進められます.そこで,教科書のp.382に説明のある統合開発環境のIDLEを使用してこの授業を進めます.一緒にインストールされているので,すぐに使うことができます.
本日は,まずは Python のインストールを行いますが,動作確認のためにIDLEを使用してプログラムの保存と実行ができることを確認します.
初めてプログラミングを行う時の慣例(呪縛)である,画面に Hello, world! を表示するプログラムは以下のようになります.
IDLEを使用するとき,Pythonのプログラムを作ると上の図2のように色分けされて表示されます.メソッドを示すえんじ色やテキストファイルを示す緑色などわかりやすいので助かります.
プログラムを実行するには,上の Run メニューから Run Module を選ぶと別ウィンドウ (IDLE Shell) で実行してくれます.
これが Python プログラミングと実行の流れです.次週は教科書のp.6以降の流れに従ってインタラクティブシェルで作業します.3週目以降はIDLEのエディタを使用してプログラムを書いていきます.その際に皆さんが理解しやすいように,このWebテキストでは表示について以下の約束事がありますので,ここで紹介しておきます.
先ほどの hello.py のところで示したように,黄緑色の背景で表示されているものは,IDLE のエディタで自分で入力するプログラムです.プログラム全体が表示されている場合や,特定の行だけが表示される場合など,その都度異なっているかもしれませんが,黄緑色の背景であれば,とにかくプログラムの中身を表します.
Run module で作成したプログラムを実行して結果が IDLE Shell に表示されますが,その際の表示内容は,先ほどの
の例のように薄いピンク色の背景の中に青い文字で表示しますので,入力するソースとは見た目で区別されます.ピンク色の部分は実行結果の表示ですので,覚えておいてください.
Windows PowerShell を利用してコマンド入力する部分は,コマンドプロンプト > 付きで表示します.以下のように > マークが付いているときは,ターミナルのコマンド入力を意味します.
> python hello.py
上でも書いたように,書いたプログラムは直観的で分かりやすいので,頑張って学習していきましょう.
さて,上記のような手順は九九を覚えている人間だからできる作業です.計算機はそんな気の利いたことはしてくれません.では,どうするのでしょうか.
どうでしょうか.上記の2番目の作業のように同じことを規則的に繰り返すのは計算機は得意なので,このようにすると簡単に実現できます.では,もうちょっと違うケースとして20の素因数分解ではどうでしょうか?
どうでしょうか.上の2番めと3番目の処理のどちらか一方を行う作業を繰り返すことで,素因数分解が実現できます.このような処理を考えることがプログラミングです.頭の中で漠然と考えるのでは無く,上記のように言葉にすること,これを「言語化」と言いますが,それを行うことが大事です.今後は自分でいろいろ考えてみてください.
昨年度のプログラミング入門Iを履修して,Ubuntuで build-essential パッケージをインストールした人はすでにPythonは入っています.VS Codeを使用してプログラムを書きターミナルの wsl で以下のコマンドを使用してPythonプログラムを実行することが可能です.
$ python3 hello.py
再履修の方はお好きな方を選んで授業に参加してください.
図1 IDLEの画面
必要に応じて教科書p.384のWindows PowerShellを使うこともあるかもしれません.一応使えるようになっておいてください.
print('Hello, world!')
上の例のように,今後Pythonのソースコードを示す部分は緑系の色の枠を使用します.
図2 IDLEにおいて,FileメニューからNew Fileを選択して,プログラムを貼り付けた状態の図.
図3 実行結果
print('Hello, world!')
Hello, world!