Pythonの基礎の一部について

Pythonの基礎の一部

どのプログラミング言語にも言えることですが、言語にはそれぞれ基礎となる部分がありそれらを上手く組み合わせることで機械をコントロールできるようになります。Pythonに焦点を絞り、基礎の一部である辞書型とユーザー定義関数について記述します。これらは頻繁に利用することになる機能の一部であり、理解するほどに使いやすくなります。

辞書型について

辞書型は1要素を『キー:値』の形で複数保存できる特徴を持っています。以前の辞書型は順番についての保証がなかったためどの順番で参照されるかわからなかったですが、最新のPython3を使うことで順番について保証されるようになっています。これにより辞書型に追加する順番をルール付けることによって、ルールに準じた順番を前提としたプログラム記述をすることできちんと動作するようになりました。キーを明確に指定して使う本来の使い方であれば順番の保証は必要ありませんが、順番の保証により事前ルール前提で要素を列挙する使い方等もできるようになりました。辞書型の使い方の幅が広がったと言えます。

辞書型の作成・変更・追加

Pythonの特徴として人間の直感に近い感覚で操作できることが挙げられます。直感で思いつくことから離れれば離れるほど人間は扱いづらく感じ、習得するためのコストも増大していきます。その点、Pythonは直感に近い感覚で扱える場面が多いため人間にとって扱いやすい言語と言えます。辞書型の作成はその恩恵を大きく受けているため簡単に基本操作を行うことができます。人間の『こうやればこうなりそう』という感覚で扱うことができる点がハードルを低くしています。

辞書型の作成は簡単です。方法は大きく分けて2つあり、初期値を入れる方法と入れない方法です。初期値を入れる場合は『変数 = {キー:値}』で作成可能です。カンマで区切ることにより複数の要素を一度に設定することができます。Pythonの辞書型の扱いやすい点として空の辞書型も同じ感覚で作成できる点が挙げられます。『変数 = {}』で作成が可能です。使い方の一例としては、for文で回している間に追加していくための辞書型を形だけ先に作り、どんどん追加していく時等に活用することができます。空の辞書型を作成するときは括弧の中身を何も用意しないだけなので直感的に理解しやすい方法と言えます。

辞書型の値を変更するのもとても簡単なのがPythonの良い点です。『変数[キー] = 値』で値を変更することができます。通常の変数の扱い方とほとんど変わりがなく、キーを指定するだけで済むため分かりやすいことがメリットです。

加えて追加に関しても、辞書型に追加する場合でも特別な書き方がいらないため非常にわかりやすくなっています。変更する場合と書き方は全く同じで『変数[キー] = 値』となります。異なる点は事前に作成していないキーを指定することです。特別な書き方が必要だと習得コストが必要になり手が止まります。また困惑する原因になるため全体的な効率が落ちる要因にもなります。そのためシンプルな記述で追加できるPythonはメリットが多いと言えます。注意点としては状況によって結果が変わるだけで、変更と追加は全く同じ書き方をするため混同しないように気を付ける必要があります。明確に、今行っていることを理解していないとメンテナンス等の時に誤る可能性があります。必要に応じてコメント挿入等を適宜行う必要があります。

ユーザー定義関数

ユーザー定義関数はよく使う機能をまとめておける便利な機能です。便利なだけでなくプログラム内もすっきりさせることができます。似た内容を複数記述せずに一つのユーザー定義関数に集約させる書き方を心がけることでメンテナンス時に修正箇所の量と特定のしやすさの両方を兼ねることができます。

ユーザー定義関数の定義の仕方と呼び出し方

Pythonの場合ユーザー定義関数もとてもシンプルです。関数を定義する場合はdefを使用します。引数を必要としない場合は『def 関数名():』で開始し、インデントを落として関数内処理を記述することで作成することができます。呼び出す場合も定義時と似ているため直感で理解しやすいことが特徴です。『関数名()』で使用することができます。引数が必要な場合は、それぞれ()に引数を指定することで使用することができます。関数内処理内でreturnを使用することで戻り値を設定することも可能です。

Pythonにオーバーロード機能はない

PythonはJavaでのオーバーロード機能が用意されていません。ですがコンストラクタとデフォルト値を代用することで疑似的に行うことは可能です。つまりデフォルト値を用いても実現が難しい場合は記述の仕方を見直す必要があります。

まとめ

辞書型はキーで要素管理ができる便利なものです。入力順番も保証されるようになったため、使い方に幅が出ました。ユーザー定義関数は引数のあるなし・returnの使用有無・コンストラクタを使用した疑似オーバーロードなど、必要に応じてカスタマイズして使用することができます。プログラムに沿った形に整形することができるため非常に使いやすくなっています。