Ryn's Web Page
とりあえず、Pythonの大雑把な予備知識
詳細は、各項を参照のこと。
- オブジェクト指向
従来の手続き型プログラミングでは、手続き(命令をする部分)とデータとが独立しており、
データは手続きに対して無防備であった為に、
ミスにより、本来有り得ない処理をしてしまう事も可能であった。
そこで、オブジェクトとして、必要なデータと、そのデータに対する必要な手続きとを一まとめにしておくと、
オブジェクト内のデータに対してオブジェクト外からの処理に制限が掛けられる為、ミスが起き難くなる。
また、オブジェクトを利用する側にとっては、オブジェクト内部の処理については考える必要が無くなり、
オブジェクト内の関数への引数とその戻り値とを考えるだけで済む。
例えば、扉には、引戸や押戸、シャッターなど様々な種類が有るが、
「扉」オブジェクトに用意された関数で「開けて」「閉めて」を命令するだけで、
扉の種類を考える必要が無く、また、様々な種類の扉も開け閉め出来る様にも出来る。
アリババの「Open Sesami !」
- 関数
一つの機能を持つ一連のプログラムに名前を付けたもの。
関数を呼び出す事によって、その機能を利用する事が出来る。
input() や print() なども、Pythonの組み込み関数。
- 引数
関数へ渡す値。
- 戻り値
関数から返って来る結果の値。
- クラス
オブジェクト指向のプログラミングにおいて、
必要なデータと、そのデータに対する手続きとを一まとめに定義したもの。
オブジェクトの仕様書。定義しただけなので、実体は無い。
組み込みのデータ型がレディメイドな型であるのに対して、
クラスは、オーダーメイドな型、と見ることも出来る。
例えば、int型は予め組み込まれたクラスで、変数を宣言する事で初めてint型の変数が実体化する事と同様に、
クラス名のクラスを宣言する事で初めて、そのクラスが実体化する。
実体化することを、オブジェクトの生成、インスタンス化、と言い、実体化したものをインスタンスと言う。
- プロパティ
オブジェクト指向的に言えば、クラスの属性。
大雑把に言えば、クラス内で取り扱うデータ。
処理を行う過程で必要となる変数などは、含まれない。
- メソッド
クラス内でデータを処理する手続き。
属性(データ)を処理する為のメソッドの他、次の様なものもある。
- コンストラクタ
クラスを実体化(インスタンス化)した際に実行される初期化の処理。
実体化した際は、必要なメモリの確保などの基本部分はPythonが勝手にやってくれるが、
個別に必要な初期設定をしたい時に必要に応じて書く。
- デストラクタ
インスタンスを破棄した際に実行される後始末の処理。
インスタンスを破棄した際は、使用したメモリの解放などの基本部分はPythonが勝手にやってくれるが、
個別に必要な後始末をしたい時に必要に応じて書く。
- ゲッタメソッド
必要に応じて、戻り値でクラス内にあるプロパティの値をクラス外へ渡す関数。
勿論、見せたくないプロパティの値には関数を作らなければ良い。
- セッタメソッド
必要に応じて、引数でクラス外からクラス内にあるプロパティの値を書き込む関数。
勿論、書き込まれたくないプロパティの値には関数を作らなければ良い。
- インスタンス
仕様に基き、クラスを実体化させたもの。
- インタプリタ
アセンブラやコンパイラが、
人間が書いたソースプログラムを機械が判る実行可能なプログラムに
「翻訳」(アセンブル、コンパイル)したファイルを作成し、
それを実行することで処理するのに対し、
インタプリタは、ソースプログラムを、その言語の環境下で直接実行することで、
言語の環境が命令を逐一「通訳」し、実行してくれる方法。
お手軽で、試行錯誤がし易い。
pythonは、インタプリタ言語。
- 対話モード(インタラクティブモード)
ソースプログラムを書いたファイルを保存し、それを実行させるのでは無く、
Pythonの環境の中で、直接プログラムを実行出来るモード。
OSから python と入力する事で対話モードになり、exit() で、終了する。
対話モード中に処理した内容は、対話モードを終了するまで、記憶している。
お手軽で試行錯誤がし易い。
- コメント
プログラムの実行には関係しない、人間の為のメモ。
1行の場合、# 以降行末までの文字列が、コメントになる。
- インデント
字下げ。
ソースプログラムを書く際に、左端から数文字分右へずらして書く書き方。
CやJavaのインデントは、見易さ以外に意味は無いが、
Pythonでは、関数やクラス、反復や判断などの範囲を示す為にインデントが使われる。
その代わりに、CやJavaで、それらの範囲を示す為に使われる{ }は、使わない。
Pythonのインデントの文字数は基本4文字とされているが、
何処かの教科書に書いてある様な「絶対に4文字でなければならない」訳では無い。
画面の右からはみ出すのが嫌だから2文字にするとか、臨機応変。
但し、何文字分でも構わないがプログラム内での文字数は統一が必要で、
場所によって4文字だったり2文字だったりバラバラだと、前後の辻褄が合わなくなり、エラーの元となる。
4文字と決めてしまうのが無難、ということ。
TABキーによるインデントは、人の環境によって見え方が変わるので、特に大きなプロジェクトでは、
避けた方が無難の模様。
- マルチステートメント
1行に複数の命令を記述したい場合は、各命令を、セミコロン ; で区切る。
- 行連結ステートメント
複数行に渡って1つの命令を記述したい場合は、 次の行につなげたい各行末に
バックスラッシュ \ を記述する。文字コードの関係で日本では ¥ 。
- エスケープシーケンス
クォーテーションなど、プログラムの記述において意味を持つ文字を単に文字として使いたい時は、
その文字の前にバックスラッシュ \ を記述する。文字コードの関係で日本では ¥ 。
また、改行など、プログラムでは表現出来ない文字コードは、
バックスラッシュ \ を目印に使って入力する。文字コードの関係で日本では ¥ 。
例えば、改行は、\n(日本では ¥n)とする。
- 組み込み〇〇
プログラム言語が予め持っているもの。
組み込みで無いものは、自作したり、importで関数やクラスが定義されたモジュールを呼び出したりして使う。
pythonは、このモジュールが豊富に有る為、物凄く多機能。
- データ型
文字列や整数、小数などのデータを、コンピュータのメモリに、
各々に都合の良い様に処理出来る様に決められたもの。
その実体は、Pythonに組み込みのクラス。
- 変数/変数名
変数名は、プログラムにおいて必要なデータを適切なデータ型でメモリ上に置き、処理をする為の場所の目印。
変数の値は、その場所に記憶されている値。適宜、処理に応じて記憶している値を書き換える事が出来るので、変数。
その実体は、データ型のインスタンス。
Pythonの変数のデータ型は、右辺から代入される値で判断して自動的に(=勝手に)決めているので、
プログラマは余り気にする必要は無くなっているが、注意していないと、エラーにつながる。
同じ変数名なのに、処理の過程で勝手にデータ型が変わる場合も有る。
プログラマは、プログラムを書く際に、そのデータの場所が、実際にプログラムを実行する際に
何番地になるのか、なんて考えたくないし、プログラムを書き変える毎にその番地は当然変わるので面倒臭い。
そこで、とりあえずプログラマにとって判り易い名前で目印を付けておき、
実行した際に何番地になるのか、は、処理系やOS等に任せてしまえ、
というのが、変数名。
C言語の変数名は「実際に値が有る番地」を示すが、
Pythonでは『「実際に値が有る番地」を記憶している番地』を示し、
しかも「実際に値が有る番地」は処理の過程で頻繁に変わるので、単なるポインタの心算でいると要注意。
- 配列
まとまった関連性の有る変数をまとめて1つの名前で定義したもの。
Pythonでは、listというデータ型によって、使用する事が出来る。
- 要素
配列の、一つ一つの変数。
- 添字
配列の、要素が先頭から数えて何番目か、を指定するもの。先頭は0。
まだまだ、続きます。