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

【Python基礎講座】関数を定義する方法

Pocket

Pythonを使ってプログラミングをしていると、様々な関数を利用します。

関数はすでに用意されている組み込み関数などを使うだけでなく、自分でオリジナルの関数を作ることもできます。

同じ処理を何度もする場合は関数としてまとめておけばコードが見やすくなりますし、再利用も簡単にできます。

今回は関数を定義する方法について解説します。

関数を定義する

Pythonで独自の関数を定義するには「def文」を使います。

def文の使い方は以下の通りです。

def 関数名(引数1, 引数2, ………):

関数の中身

関数名は関数の名前で、関数を呼び出すときに使います。

引数はその関数に渡す変数です。

引数の数は自由で、引数が1つもない関数も定義できます。

定義した関数を使うには組み込みの関数と同じく「関数名()」で関数を呼び出します。

引数がある場合は引数に渡す変数を()の中に記述します。

実行結果

x + y = 9

この例では2つの引数を持つ「plus」という関数を定義しました。

関数は引数に渡された数字を足し合わせて、その答えを表示するという機能を持っています。

関数内で処理した結果を呼び出し元で使いたい場合は「return」を使って戻り値を返すことができます。

def plus(x, y):

return x + y #xとyを足した答えを返す

sum = plus(4, 5)

print(sum)

実行結果

9

変数のスコープ

関数を使う上で気を付けないといけないのが変数の「スコープ」です。

スコープとはその変数を参照できる範囲を表します。

関数内で使用する変数にはスコープがあり、関数の中でしか参照することができません。

例えば、先ほどのplus関数で使われている「x」という変数を関数の外から参照しようとすると以下のようになってしまいます。

def plus(x, y):

return x + y #xとyを足した答えを返す

print(x)

実行結果

NameError: name ‘x’ is not defined

xは定義されていない、つまり存在しない変数というエラーがでます。

関数内で使われる変数は、関数の外からは参照できず、存在しないものと判断されてしまいますので注意しましょう。

高階関数を使う

pythonの関数は他の言語とは異なり、変数に格納したり、引数として別の関数に渡したりすることができます。

このうち、関数を引数に渡したり返り値として返したりする関数を高階関数と言います。

実行結果

[1, 15, 4, 7, 23, 45]

[1, 4, 7]

この例ではpick_up()が高階関数です。

pick_upはリストと関数の2つの引数を持ちます。

引数で渡したリストの各要素に、引数で渡した関数を適用させ、戻り値があった要素を関数内で作ったリストに格納します。

そして、最後にそのリストを返します。

low_ten()は引数の数字が10以下の時だけその数字が返されます。

つまり、pick_upに数字で作られたリストを渡すと、10以下の数字だけで構成される新しいリストが返ってきます。

高階関数のメリットは、引数として渡す関数を変えるだけで簡単に処理を変更できる点にあります。

例えば10以上の数字だけで構成されるリストや、偶数だけで構成されるリストを返すようにしたい場合は、low_ten()を10以上なら返す関数upper_ten()や偶数なら返す関数is_even()などに変えるだけで、すべての要素にアクセスする部分については変更する必要がありません。

ドキュメンテーション文字列

関数を定義する際に、その関数について説明する「ドキュメンテーション文字列」を書くことができます。

defで関数を定義した後に”””と”””の間に文字列で説明を書くとそれがドキュメンテーション文字列となり、help()でそのドキュメンテーション文字列を参照することができます。

 

実行結果

Help on function low_ten in module __main__:

low_ten(x)

この関数は引数xが10以下の時だけその数字を返す

ドキュメンテーション文字列は必須ではありませんが、ドキュメンテーション文字列があれば他の人や後々自分が読んだときにその関数がどういったものなのかを理解しやすくなります。

できるだけ、ドキュメンテーション文字列を書くようにしましょう。

投稿者:プロスタ編集部

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

おすすめスクール

全国30校舎で展開されるヒューマンアカデミーのWeb講座は修了者数4万人超、講師とカリキュラムの満足度がどちらも9割を超えています。就職や転職に必要なレベルの実務スキルを身に付けられます。

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

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

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

あわせて読みたい

関連記事

イチ押しランキング

1リナックスアカデミー

リナックスアカデミー

2システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ
ページ上部へ戻る