Pythonでは、
■ 表示 : print()関数
■ 入力 : input()関数
を使用するのですが、関数は高校の数学で登場する合成関数と同じなので()内の値で結果が変わります。
プログラミング言語では、この()内に引数を追加するのですが、この2つはそのまま使用できるので組み込み関数として実装されています。C言語では、iostream.h をincludeしないと組み込み関数を使用できないのですが、Pythonではそのまま使用できます。input関数を使うと
のように変数内にinput()関数で入力した値を代入できるので、print()関数を使用して入力した値を表示することができます。この変数の値のことを 【 リテラル 】 と言いますが、変数には型があるので、種類によって分別されています。ここでは数字を入力しているのですが、
のように表示の際に数式のように指定するとエラーが発生します。こkではType Errorが発生していますが、エラーメッセージを見ると、int型ではなくstt型である事が指摘されています。この場合、型を変更すればいいので、
のように変数をint()の中に包含して方を変更すれば、数式を作ることができますが、入力の段階でint型にすることもできます。
のコードのようにint()の中にinput()関数の処理を包含することで、リテラルの型をintの状態にできます。そのため、数式を構築しても整数型なので問題なく数式を作る事ができます。
関数
先日は、関数を使いましたが、関数を使う場合、
のように関数を宣言して、変数に関数の実行結果を指定すると、returnで出力される値を取得できます。この状態で、print()関数を用いて変数を引数として使用すると、
のように戻り値を表示することができます。処理の全体像としては、
のようになりますが、対話型のモードでも関数のようなブロックを使用したものは宣言できるのでこうした処理を実装して実行することができます。
関数については、このように作ることができるのですが、input()やprint()のようにそのまま使用することができる物もあります。コレとは別に、inportをして使用する標準ライブラリも用意されており、Pythonのインストールをするとそのまま使用できるようになっています。この辺りは、コンパイル型言語でビルド環境を構築した場合にも標準ライブラリと組み込み関数が実装された状態で使用できるようになりますが、ライブラリを使用する際には、読み込んでから使用することになります。この時の記述は、
のようになりますが、impotで読み込んだ場合、その対象のライブラリに格納されているメソッドを使うことができるので、
■ 関数名.メソッド名()
と言う形で指定して使用することになります。この処理では、mathモジュールを読み込んでpiメソッドを使っている状態になります。piは円周率なので、そのまま円周率が表示されています。この2つですが、
の部分がモジュールの呼び出しで、
の部分がメソッドの利用になりますが、メソッドは、オブジェクトに対して追加できるので、変数に追加することもできますから、
のような記述にしてモジュール名を簡素な表記にすることもできます。また、処理そのものを変数にまとめることもできるので、
のようにすることでコード内の文字数を節約することもできます。
エディタを使う
対話型のモードでも関数やループをつかたコードの確認はできまsが、
のように入力ミスがあると、次のプロンプトの場所から再度すべてを入力する必要があるので、テキスト編集のように前に打ち込んだ部分を編集して実行することができません。また、対話型の処理はメモリー内にデータを残すだけなので、Pythonを終了するとメモリー内のデータも消えてしまいます。コーディングをする場合には、作業が長くなる場合もありますし、コードが消えてもらうと困るので、通常はエディタを使用してコードを書いてファイルで保存することになります。
WINDOWS環境だとPythonのインストーラーを使用するはずですから、インストール時にTcl/TKとIDLEのインストールにチェックを入れておけば問題なくIDLEが使用できるのですが、LinuxやMACの場合だと、TkとIDLEを別途インストールしないと使用することができません。
IDLEのインストールされている環境だと、新規作成を選択すると
のようにエディタが立ち上がるので、コードを書いてファイルとして保存するとF5キーでコードが実行できるようになります。
LinuxやMACの場合だと、IDLEなしの状態だとターミナルで作業をすることになりますから、
のようにviを開いて
のようにiキーで編集モードに入ってコードを書いて、その後ESCキーでモードから出てから
:w ファイル名
で保存して、
のようにファイルの書き込みを行い、ターミナル側で
のようにコマンドを打ってPythonファイルを実行すると、
のように処理が実行されます。対話型だと、
のように入力すると、
のようにプロンプトが変わるので、ここからIDLEの対話モードの状態での入力ができるようになります。この状態だとPythonになっているので、BASHが使用できませんから、Pythonを終了してBASHに戻る時には、quit()を使用します。すると、
のようにPythonのプロンプトからBASHが使用できるプロンプトに戻ります。
IDLEを使用して、コードを書く場合、オプションで行番号の表示もできるのですが、
■ TABキーで候補を表示できる
■ 関数の書式が表示される
という仕様になっていますから、対話型のモードでは使用できない機能が実装されています。
コードを書く
とりあえず、IDLEを使って
のようなコードを書いてみたのですが、
のようにライブラリを読み込んで変数にメソッドをそのまま代入しています。
の場所で関数を作成し、半径となる値を取得し面積を算出しています。この公式は小学校の
半径×半径×円周率
になりますが、中学校では指数を使った処理を学習するので、この構造は累乗を用いた式に書き換えることができますから、
円周率×半径2
になります。その為、公式も
S=πr2
になります。コードだと 【 p*r**2 】 のような記述になります。その後、
のように半径を入力して、関数を使ってその値を引数に代入する処理を行うわけですが、この処理を変数に代入することで、関数内の戻り値である 【 r*r*p 】 の値を変数zに代入することができます。
そして、
のように引数と戻り値を表示用の関数を用意して、
のように引数のない関数の表記で実行することでimput()関数を取得して、関数で面積を算出した後にその値を取得して表示を行うことができるようになります。コードを実行すると、
のようにinput()関数が実行されてニュ力街になりますが、数値を代入すると、
のように表示用の関数が実行されます。自作した関数の場合、
のようにdefで宣言することになりますが、
def 関数名(引数):
の形で記述をして、その後に、半角スペースを入れてインデントを追加して関数の内容を記述することになります。
この辺りは、viでも対話型のモードでもブロック内の記述はインデントが入るので、ほとんどのコードエディタで、事前にコードとしてファイルの保存を行うと、自動でインデントが入る仕様になっています。
数値た値を関数の呼び出しで使用する際には、
のような形で、
retuern 引数
と言う形で出力することになりますが、関数は、
■ 関数内の変数の外部参照ができない
と言う仕様になっているので、通常のコードの書き方だとブロックスコープがかかるようになっています。
この仕組みは、どの言語も共通していますが、JavaScriptで変数の宣言を行う際に使用するletもブロックスコープがかかるようになっています。
関数の場合、
■ 引数なし : 関数内の変数の外部参照がない
■ 引数ある : 関数内の変数の外部参照がある
と言う条件で、使い分けることになりますが、引数を用いて内部で処理を行い、その結果を変数として出力する場合には、returnを使用して戻り値として出力することになります。
この際に、
の処理のように、変数に引数の入った関数を代入して使用することになりますが、この状態にすると、戻り値を変数として使用することができるようになります。