これからあなた方は Python プログラム、つまり「Python」という言語(文法)で記述された作業指示をコンピュータに実行させることになります。コンピュータの中でプログラムがどうやって実行されているか、は大いなる謎でしょうが、いまは「 Python インタプリタ」というプログラムがあり、それが Python プログラムを読み、構文解釈し、実行して結果を出してくれるのだ、と考えてください。
もしこの「インタプリタ」という言葉の意味、あるいは他のプログラム実行形式(例えばコンパイラ)との違いなどが気になる人は、Pythonインタプリタを読んでみてください。簡単な話ではありませんが、コンピュータ・アーキテクチャの根幹に関わることですから、気になる人は何なりと質問してください。
ともかく、Python のプログラムを実行するには「Pythonインタプリタ」を起動して、そのプログラムを入力として与えなければならないのです。次節からその操作について説明します。
ところで教科書の p.3 には問題が |
---|
ところで教科書 p.3
のインタプリタに関する説明は一箇所だけ誤りがあります。(「やさしいC」もそうでしたが、このシリーズはところどころに誤った説明があります。) ページ中ほどに「入力されたプログラムを1行ずつ機械語に翻訳するプログラムによって実行される」とありますが、これは誤りです。翻訳過程は経ますが、元のPythonのプログラムが最終的に等価な機械語に変換されることはありません。 |
教科書 p.xiii (p.8) 及び p.5 以降に Python プログラムを実行する手順について説明があります。しかし教科書は Windows 環境を仮定しているので Windows Powershell を起動する例になっています。Mac 環境ではターミナルを起動します。
起動すると、このような状態になっているはず。
最後の確認:Python実行環境のインストールはできていますか? |
---|
先週の最後に指示していたPython 実行環境のインストールが終わっていない者は先週の最後の教材「Python 準備」を今すぐ参照。(ここを超えないと先に進めない) |
Python にはプログラムの実行に2つのモードがあります。
以下にそれぞれのモードでの実行方法を示します。
対話的に一行ずつPythonコードを入力し、実行結果を見ることができます。
コマンドプロンプトに続いて、python3 と入力して Enter キーを押してください。
yasuda@Lily ~ % python3
実行した状態を下に示します。
赤い枠が python3 コマンドの入力、赤い矢印の先の「 >>> 」が表示されておれば起動が完了しています。この状態でPythonのプログラムを入力することができます。
以下のように「>>> 」プロンプトに続いて「1 + 1」(とEnterキー)を入力して実行させてください。
「2」と計算結果が表示されていることが確認できます。「 1 + 1 」も立派な Python の文法に沿った「コード」です。インタラクティブモードでは、一行単位で Python のコードを受け取り、実行し、得られた結果を表示します。「>>> 」が表示されれば、次のコードを入力することができます。
以下にシンプルな Python のコードの例を示します。試しに幾つか入力して実行させて結果を観察してください。
コード | 単純な四則演算 |
---|---|
100 * 10 | 単純な四則演算( +, - , *, / ):掛け算・割り算は記号に注意 |
10 / 2 や 1 / 3 | 割り算:小数点が付く(では 1 / 3 は? 1 / 3 * 3 は?) |
1 + 2 * 3 | 四則演算だが掛け算の方が足し算より優先される(では ( 1 + 2 ) * 3 は?) |
2 ** 4 | 2 の 4 乗:(では 100 乗は?200乗は?) |
print( 100 ) | print関数 |
'123' + '456' | 文字の連結 |
'123' * 2 | 文字の繰り返し:(では '123' * 2 + '456' は?) |
ところで(原理的に)演算できない計算をさせると何が起きるでしょうね?以下にゼロによる除算の結果を示します。どんなことをさせるとどんな結果になるか、いろいろ探りを入れて経験を積んでおくことが重要です。突然こんなエラーが出たら何が起きたかわかりません。予め知っていたら「ああ、ゼロで割ってしまったんだ、どこでそんな計算になった?」とスムーズにプログラム修正に取り掛かれます。
キーボードで Control キーを押しながら D キーを押してください。以下のような画面になるでしょう。(以後、Control-D を入力する、などと表現します)
あるいは、>>> に続いて「 exit(0) 」と入力しても(つまり exit() 関数を実行しても)Pythonは実行終了します。
もし以下のような画面を見たとしたら、あなたはControl-D を押しすぎています。
つまり一度目の Control-D で Python を終了し、ターミナルの(シェルの)コマンド入力モードに戻ったのに、あなたはもう一度 Control-D を押したのです。すると今度はシェルが終了して、上のような表示になります。するとこのターミナルも(もうやることがないので)終了するほかありません。作業を続けるには、もう一度新しいターミナルウィンドウを開いてください。
Pythonコードをテキストファイルに書いておき、ファイル名を指示してその内容を実行させることができます。いまはまだ手元にそんな Python プログラムのファイルなんて無いでしょうから、その準備から説明します。
この科目の教材トップページの、この週の資料として「サンプルコード sample.py」があると思います。これをダウンロードしてどこか適当なディレクトリに保存してください。保存できれば、そのディレクトリに cd コマンドで移動してください(そこをカレントディレクトリにしてください)。
ブラウザでリンク先のファイルを(表示するのではなく)ダウンロードするには、Control キーを押しながらリンクをクリックしてコンテクストメニューを表示させ、ダウンロードフォルダに保存するなり、自分の望むフォルダ(ディレクトリ)に保存するなり指示しましょう。
「コンテクストメニュー」って何だ |
---|
〜〜と思ったら、調べると良いです。専門用語はそうやって覚えていきますし、そうやって周辺の領域に(それぞれの専門分野に)触れていきます。呪文化させないように。 |
ファイルが保存できれば、内容を確認してみましょう。以下に cd コマンドでディレクトリを保存したディレクトリに移動し、 ls コマンドでファイルの存在を確かめ、cat コマンドで画面上に表示させる作業を示します。
% cd Downloads
% ls -l sample.py
-rw-r--r--@ 1 yasuda wheel 148 10 19 22:36 sample.py
% cat sample.py
for i in range(5):
if i % 2 == 0:
print( '# ' * (i + 1) )
else:
print( '| ' * (i + 1) )
print()
print('Happy Programming!')
%
この Python プログラムのコードの意味は良く分からないかも知れませんが、今はまあ良いでしょう。ともかくこれで、実行すべき Python のコードを sample.py というファイルとして用意できました。
コマンドプロンプトに続いて、python3 sample.py と入力して Enter キーを押してください。
yasuda@Lily ~ % python3 sample.py
実行した状態を下に示します。
赤い枠が python3 コマンドの入力、その下の数行がこの Python プログラムの実行結果です。コードとなんとなく対照できると良いのですが、どうでしょう。
赤い矢印はターミナル(シェル)のコマンドプロンプトが再度表示されていることを示しています。つまり python3 コマンドは無事に実行終了し、ふたたびシェルに制御が戻ってきたのです。この状態で次のコマンドを入力することができます。
二つのモードは単に Python インタプリタの起動に際して、つまり python3 コマンドに対して実行するべきPythonプログラムファイル名を与えるかどうか、で切り替わります。
% python3 abc.py
のようにファイル名をつけてPythonインタプリタを起動すればスクリプトモードになります。
% python3
のようにファイル名をつけずに起動すればインタラクティブモードになります。
いずれにしても道具としての仕組みと挙動が分かったのですから、あとは自分の目的・需要に合わせて工夫して使っていくことになります。
さて、これで実質的に教科書の p.12 「1.3 レッスンのまとめ」まで来ました。そこに書かれていることが理解出来ますか?
納得がいけば、p.13 の「練習」をやってください。正しく答えられるでしょうか?(模範解答は Appendix A. にありますが、重要なのは正誤ではなく、正しく理解できているかどうか、その結果に納得がいくかどうか、です。)
課題としての提出は求めませんが、必ず作業してください。うまくいかない人は授業時間内か、後にでも必ず質問して問題ないようにしてください。