見出し画像

高校向けPython入門(1) インストールと書法

 PythonとJavaScript,スタートの難易度が全然違う。テキストエディタを用意するだけのJavaScriptと違い,Pythonはどの環境で使うかから調べていかなければならない。プログラミングがほとんど初めての高校教員には最初からハードルが立ち塞がる。そこで,Webで調べるよりいくらか楽になるように,そのスタートから書いた。

============================================

1 Python 事始め


1.1 Python の使用環境作り


 Python を使うには,処理系をインストールする他,Web 上の Google Colaboratory や, paiza.io を使う方法がある。
 Google Colaboratory を使う場合は Google のアカウントが必要になる。paiza.io は無料で試用できるが,matplotlib などのライブラリが使えないようだ。
(2021 年1月現在)
 Python をインストールして使う場合も,コマンドラインで起動する,IDLE(アイドル) を使う,ソースファイルを作ってコマンドラインで開く,Jupyter Notebook を使うといった,いろいろな方法がある。個人で使う分には何でもよいが,生徒の実習で使う場合には,40数台のパソコンへのインストールの手間や,教材配布の方法,作っ たプログラムファイルの提出方法についても考えておく必要がある。
(1) コマンドラインで起動するのはソースファイルを保存するには向かない。
(2) IDLE を使う場合, 保存すると,拡張子 py のテキストファイルができる。
(3) 拡張子 py のソースファイルを作り,コマンドラインで動かす場合は,そのソースファイルを提出すればよい。
(4) Jupyter Notebook の場合,拡張子 jpynb のテキストファイルができるが,
これにはプログラムコード以外の内容も含まれる。Jupyter Notebook で開けばよい。


Python のインストール


 Python をインストールするには 2 つの方法が考えられる。なお,Python にはバージョン 2 と 3 があるが,3 を使う。
 (1) Python を Web サイトからインストール。
  そのあと,いろいろなライブラリを pip コマンドでインストール。
 (2) Anaconda を Web サイトからインストール。
(2) の方が楽だ。Anaconda をインストールすると,Python も,Jupyter Notebook も, 各種ライブラリも同時にインストールされる。Anaconda のインストール方法は Web にい くつか載っているのでそちらを参照されたい。
 以下は,IDLE または Jupyter Notebook を使う例だが,Web の Google Colaboratory や,paiza.io を使う場合も初めの方のコードの例は同じなので,環境設定の前に実際にやっ てみるとよい。基本的な事柄は,無料でアカウントも不要な paiza.io がよいだろう。ファイ ルの保存や読み込みとなると,実習を想定して Google Colab でやってみる方がよい。


1.2 IDLE


 IDLE を使わない場合は,この節は読み飛ばして構わない。
 Windows10 の場合,検索バーに IDLE と打ち込み,idle.bat を選んで起動すると Python Shell が開く。
 Windows8 なら,スタートメニュー →アプリ→ Anaconda3 と進むと,Anaconda Prompt があるのでこれを開き, idle と打ち込む。
 Mac の場合はターミナルを開いて idle3 と打ち込む。単に idle だと,Python2 が開いて しまう。

画像1


 File メニューから New File を選ぶと,エディタ画面が別ウィンドウで開く。ここに, print("Hello Python") と書いて,メニューから RUN ー RUN Module (F5) を選ぶ。F5 キーでもよい。保存するように促されるので,OK をクリックしてデスクトップなど適当な フォルダに保存する。拡張子はつけなくても自動的に py がつく。
実行すると Python Shell に結果が表示される。

画像2


【やってみよう】
# からあとは説明文なので打ち込まなくてよい。 半角のスペースもきちんと入れて書こう。

a = 2         # 変数 a に 2 を代入する
b = 5         # 変数 b に 5 を代入する
b = a + b     # aにbを加えたものあらためて b とする
print(a,b)    # a,b の値を表示する

うまくいかない場合は,打ち間違いがないかどうか確かめよう。打ち間違いがあれば,カー ソルキーでその個所へ行き,直接書き換えればよい。

画像3


3 行目に違和感があるかもしれないが,とりあえず先に進む。
次は,「a に b を加えたものをあらためて b とする」という操作を 3 回繰り返すプログラ ムだ。b = 5 の次の行にカーソルを移動し,次のように書き換える。

a = 2
b = 5
for i in range(3):    # 末尾はコロン
    b = a + b         # 先頭に半角スペースを4つ入れる
    print(b)          # ここも半角スペース4つ


RUN で実行すると次のようになる。左上に結果が表示されている。

画像4


a は変化せず,b の値が 2 ずつ増えていればよい。 

以上が,プログラムの入力と実行の要領だ。
IDLE を終わるには,FIle メニューから「Close」を選ぶ。続いて,Python Shell (または Anaconda Prompt)も終了する。Mac の場合はターミナルも終了する。

1.3 Jupyter Notebook


 Jupyter Notebook を使うには,Anaconda を起動してランチャーから使う方法があるが, 時間がかかるので,ショートカットアイコンを作るか,スタートメニューもしくはタスクバー に登録してしまうのがよい。Windows10 の場合,
C:¥ users¥ユーザー名¥ Anaconda3¥ Script¥ jupyter-Notebook-script.py
のショートカットを作る。
 Windows8 なら,スタートメニューの中のアプリの Anaconda3 に Jupyter Notebook が あるのでこれを右クリックしてスタート画面またはタスクバーにピン留めしてしまうのが よい。
 Mac ではターミナルを開いて Jupyter Notebook と打てば実行できる。パスが通っていない場合は,/Users/hoge/opt/anaconda3/bin/jupyter_mac.command のようにフル パスで指定することになる。もちろん Anaconda 経由で起動してもよい。
 Jupyter Notebook を起動すると,ブラウザが開いて,次の画面になる。ブラウザの後ろ で,コマンドプロンプト(Mac ではターミナル)も開いているだろう。
はじめに作業フォルダを指定する。たとえば,「Desktop」をクリックする。

画像5

 作業フォルダ(カレントディレクトリ)が Desktop になり,Desktop にあるファイルの一 覧に変わる。次に,右上の「新規」(または New)から Python3 を選ぶ。Jupyter Notebook では,Python に限らず,いろいろな言語を登録して使うことができるが,いまは Python だ けが入っているはずだ。
 なお,以前作成したファイルを開くときは,ファイル名のリストの中からそれを選ぶ。

画像6

 開いた画面がノートブックで,左側に「入力 [  ]」と書かれた,カーソルが点滅している 長方形をセルという。

画像7

ここにプログラムコードを書き,Shift キーを押しながら Enter キーを打つ(Shift+Enter) とプログラムが実行される。たとえば,print("Hello Python") と書いて,Shift+Enter を押してみよう。次のようになる。

画像8

最初のセルが「入力 [1]」となり,その下に Hello Python と表示され,新しいセルができる。
 この新しいセルに次のコードを書いていけばよいのだが,[1] のセルに戻って,コードを 書き直すこともできる。生徒の実習の際は,新しいセルに書かず,初めのセルを書き直すよ うにするのがよいだろう。途中経過を残していきたい場合は,新しいセルに書かせていけば よい。

画像11

 セルを消したい場合は,左端のバーをクリックして選択し(バーの色が変わる),メニュー アイコンのはさみ(cut selecte cells)をクリックすれば削除できる。
 セルの内容を書き換えて実行すると,セルの番号は一つずつ増えていく。

【やってみよう】
# からあとは説明文なので打ち込まなくてよい。 半角のスペースもきちんと入れて書こう。

a = 2         # 変数 a に 2 を代入する
b = 5         # 変数 b に 5 を代入する
b = a + b     # aにbを加えたものあらためて b とする
print(a,b)    # a,b の値を表示する

画像10

うまくいかない場合は,打ち間違いがないかどうか確かめよう。打ち間違いがあれば,カー ソルキーでその個所へ行き,直接書き換えればよい。
 3 行目に違和感があるかもしれないが,とりあえず先に進む。また,各行の意味は,いまは 余り深く考えなくてもよい。
 次は,「a に b を加えたものをあらためて b とする」という操作を 3 回繰り返すプログラ ムだ。b = 5 の次の行にカーソルを移動し,次のように書き換える。

a = 2
b = 5
for i in range(3):    # 末尾はコロン
    b = a + b         # 先頭に半角スペースを4つ入れる
    print(b)          # ここも半角スペース4つ

Shift + Enter で実行すると次のようになる。

画像11

a は変化せず,b の値が 2 ずつ増えていけばよい。 

 以上が,プログラムの入力と実行の要領だ。
  作成したプログラムは,ファイルメニューの「リネーム」(Rename)で名前をつけておこう(初めは Untitled になっている)。上に表示されているファイル名が変わり,その横に(自動保存:autosaved) となっていれば,そのまま終わっても保存されているが,終わる前に Ctrl+S で上書き保存しておくとよい。

 Jupyter Notebook を終わるには,ファイルメニューから「閉じて終了」(Close and Halt) を選ぶ。その後ブラウザを閉じ,さらに,コマンドプロンプト(Mac ではターミナル)も開いているのでこれも閉じる。

1.4 注意事項

コードを書いて実行し,それを修正してまた実行すると,セルの番号が1つずつ増えていく。セルの番号が増えていくということは,前のセルで実行したことはどうなるのだろうか。
 実は,表示はされていないが,変数に値を代入したことなどは残っている。
 このことを確かめよう。 ファイルメニューから新しいノートブックを作り,次の 2 行を書いて実行する。

a=3
print(a + b)
変数 b の値が定義されていないので,エラーになる。

画像12

しかし,セル 1 で b = 7 を実行し,セル 2 でこれを実行すると,ちゃんと実行される。

画像13

セル 1 をハサミツールで削除しても同じことだ。また,セル 1 を書き換えても同じだ。b の 値はちゃんと残っていて,エラーにはならず実行される。

画像14

 しかし,この状態で保存すると,次に開いたときは,b = 7 を実行したセルは表示されず, このセルを実行するとやはりエラーになる。

 このために,教材作成でいろいろ実験しているときに,以前のものが残っていて思わぬ結果になることがある。
 また,できたと思って保存したら,次に開いたときに未定義でエラーになるということもある。おかしいと思ったら,そのセルの内容を Crtl+C で記憶し,新しいノー トブックでペーストして実行して確かめるのがよい。
なお,このことは,Google Colaboratory でも同様に起こる。

1.5 学び方ガイド

 高校の授業で Python を使ったプログラミングを教えるとして,教員はどこまで知ってい ればよいか。一般の入門書で学べばよいか。
 それを考えるために,まず教科書の例題を見てみよう。「社会と情報」や「情報の科学」 のプログラミングの節にあるものだ。使っている言語は教科書によって異なるが,VBA か javaScript だろう。プログラム例は載っているが,変数や代入についての概念の説明はなく, 実習するにしてもただコードを書き写して動かしてみるだけで,これではある問題に対して プログラムを「作る」ことはできないだろう。
 「情報I」でプログラミング実習を行うには,まず,次のことを教える必要がある。
  ・プログラムの書き方 : プログラミング言語によって書法が異なる。
  ・変数,リストの概念と値の代入
  ・四則計算と,割り算の余りなど,よく使う計算
  ・制御構造 : 繰り返しと条件判断
  ・関数の概念とその利用法
本書では,まずこれらについて,第 5 章までで学ぶ。大学入試共通テストに情報が入って きたとしても,ここまでの知識があれば対応できるだろう。
 さらに,データの処理(統計)などでプログラミングをしていくなら,図の描き方も必要になる。一般の入門書には,高校で必要な図(棒グラフ,円グラフ,ヒストグラム,関数の グラフなど)が描けるような内容が掲載されていないものが多い。
 一方,機械学習などは高校では不要だ。入門書に必ず載っている「タプル」や「辞書型」も高校ではほとんど使わな い。Python はオブジェクト指向言語だが,オプジェクト指向とは何かについても学ばなくても済む。
 では,教員はどうか。どんな授業を行なっていくかにもよるが,シミュレーション を表計算ソフトではなくプログラミングでやろうとすれば,そのための教材作りが必要になる。旧センター試験の「情報関係基礎」のプログラミングの問題を見ればわかるが,生徒は 上記第 5 章までの知識でもよいが,実際にプログラムしたものを動かすとなれば,その準備 のためにもっと多くの知識が教員には必要である。
そこで,「第 6 章 図の描き方」以降を学ぶことになる。
ひとまず,第 5 章までを読んで,練習問題をやってみることを勧める。その後,必要に応 じて第 6 章以降を読まれるとよいだろう。

================================

次は「プログラムの書き方」