プログラミングをするうえで関数を扱うことは必須です。Pythonでは組み込み関数と言われる便利なものが最初から備わっていますが、自分で関数を定義することもできます。
今回は関数を定義する方法からコメントの書き方などの基本的なルールを紹介していきます。
そもそも関数とは何か?組み込み関数とは?と思う方は以下の記事から確認できます。引数と戻り値の用語解説も確認しておきましょう。
プログラミングの勉強での山場の一つであるPythonの関数の解説をしていきます。引数・戻り値の解説から組み込み関数一覧まで紹介しています。 関数とは? 関数とは入力値を処理してある値を出力する装置のことを言います。ブラックボッ[…]
関数を定義する方法
関数を定義する構文は以下のようになります。Pythonでは戻り値(return文)が無くても関数として定義できます。
1 2 3 4 5 |
def {関数名}(仮引数): {実行文} return {戻り値} #returnは無くてもOK |
戻り値なし
以下の例では関数の仮引数がn、実行文にfor文とprint関数が書かれています。return文はありません。
1 2 3 4 5 6 7 8 9 10 11 |
def sample(n): for i in range(n): print(i) sample(3) #出力結果 0 1 2 |
このようにreturnがない場合の戻り値はNoneになります。ためしに関数の値を変数に代入してprint関数で出力すると以下のようにNoneとなります
1 2 3 4 5 6 7 8 |
x = sample(3) print(x) #出力結果 0 1 2 None |
1行目の「sample(3)」が実行されて0~2が出力されていますが、2行目の「print(x)」ではNoneが出力されています。
つまり、returnがないと変数に代入することができません。
戻り値あり
下の例では戻り値なしで紹介した関数に空のリストを追加しました。このリストの中にfor文でループさせた値を追加していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
def sample(n): spam = [] #空のリストを用意 for i in range(n): spam.append(i) return spam #戻り値を設定 x = sample(5) print(x) #出力結果 [0, 1, 2, 3, 4] |
今回はreturnにリストを指定しているので戻り値はリストになります。先ほどのようにNoneにはなっていません。
関数のコメント
コメントの書き方
プログラミングでは関数を作るだけでなく読みやすいものが好まれます。その助けになってくれるのがコメントです。
このコメントのことをドキュメンテーション文字列(docstring)と言います。defの次の行にコメントを書くことで関数の実行文をすべて読まなくても理解できます。
1 2 3 4 5 6 7 8 |
def {関数名}(仮引数): """ ここにコメントを書く """ {実行文} return {戻り値} #returnは無くてもOK |
- 1行ならコメントの’#’で書く
- 複数行なら3連のクォート(”)で囲む
- どういった処理をする関数なのかを書く
コメントを表示する方法
関数のコメント(ドキュメンテーション文字列)は書くだけではなく、その文字列を取得することもできます。以下のようにドキュメンテーション文字列を書いたときを見てみましょう。
関数名に「.__doc__」をつけるとprint関数で表示できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
def sample(n): """ リストに0から引数までの 数値を保存する """ spam = [] #空のリストを用意 for i in range(n): spam.append(i) return spam #戻り値を設定 print(sample.__doc__) #出力結果 リストに0から引数までの 数値を保存する |
まとめ
関数を定義する方法とコメント(ドキュメンテーション文字列)について解説していきました。
return文の有無で戻り値が異なるところがもっとも注意するところです。関数の挙動が思うようにいかないときは戻り値のデータ型を確認してみましょう。
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]