1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Python超入門その13〜関数を使って処理をまとめよう〜

Pocket

はじめに

似たような処理を何度も書いていることはありませんか?

コードが冗長になるとメンテナンス性も低下し、ひとつの修正で何箇所も直さなければいけなくなります。類似する処理は、ひとつにまとめて記述するべきです。多くのプログラム言語では、これを「関数」を使って実現します。それでは、関数とはどのようなものなのでしょうか?

この記事では、Python初心者の方向けに、Pythonの関数の書き方・使い方についてお伝えしていきます。処理ごとの関数を作って、再利用できるようにしましょう。

そもそも関数ってなに?

関数と聞くと、多くの方は学校で習った数学を思い出すでしょう。
数学での関数は、変数Xの入力に対して、値Yを返すというようなものでした。プログラムでも考え方は同じで、「入力→処理→出力」という一連の流れがあります。

ただし、数学とは違い、入力・出力のどちらか一方しかなかったり、どちらもなかったり(処理のみ)する場合もあります。また、同じ入力に対して、いつも同じ出力を返すとも限りません。このように、数学の関数とは特性が異なります。

それでは、Pythonの関数をみていきましょう。

基本的な関数の書き方・使い方

まずは、非常に単純な処理のみの関数(入力・出力なし)をみてみましょう。次の例を見て下さい。

例:

 

Pythonの関数はdefキーワードを使って宣言します。関数名は任意の名前(例ではsayhello)をつけられますので、関数の処理を表す適切な名前をつけましょう。
ここでは、単純にコンソールに”hello, function”と出力するだけの関数です。関数は定義しただけではなにも起こりません。定義した後に、関数名を使って呼び出す必要があります。次に、入力がある関数をみてみましょう。

例:

 

関数の入力は「引数」と呼ばれ、変数のように任意の名前で宣言できます。呼び出し時に渡された引数は関数にそのまま渡されるので、関数の内部で使うことができます。例では、2つの引数を足し合わせて表示しています。

引数の数は任意なので、いくつでもOKです。とはいえ、多すぎる引数は問題があるため、引数が多い場合には関数の分割を考えましょう。
また、引数の型は動的であることに注意しましょう。間違った型の引数を渡すと、エラーになってしまいます。必要であれば、関数内でエラーチェックを行いましょう。

最後は、出力がある場合の関数を見てみましょう。先程の足し算関数の結果を返すようにしてみます。

例:

 

関数の出力は「戻り値」と呼ばれ、変数などに代入することができます。また、そのまま他の関数の引数にすることも可能です。関数から戻り値を返すときには、returnキーワードを使って返す値を指定します。

以上が、関数の基本的な書き方・使い方になります。

デフォルト引数の使い方

場合によっては、関数にオプション的な引数を持たせたいこともあります。しかし、普通の引数として宣言してしまうと、たまにしか使わないオプションのために毎回引数を記述しなければいけません。そんなときは、「デフォルト引数」を使いましょう。たとえば、次のようにします。

例:

 

このように、デフォルト引数を指定しておけば、オプション引数が必要ない場合には省略することができます。関数内ではオプション引数も通常の引数と同様に扱えるため、いつも通り処理を記述すればOKです。
例では、わかりやすさのために名前付き引数として呼び出していますが、値のみを記述しても問題ありません。なお、次のようにすると名前付きでしか呼び出せないようにできます。

例:

 

まとめ

関数の使い方がお分かりになりましたか?プログラムでは、似たような処理を記述することがよくあります。
適切な関数に分離しておけば、再利用も簡単です。何度も同じ処理を書かずに関数にまとめましょう。また、デフォルト引数を活用して、関数をより便利にできないか考えてみて下さい。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る