Pythonで関数の定義を行うと気に欠かせないのが引数です。単に関数の入力値と言ってもデフォルト値を持つものや持たないもの、そもそも引数がない関数などもあります。
今回はこう言った引数の基本的な内容を解説していきます。もし、「そもそも関数ってなに?」と思った方や「関数を定義する方法」を知りたい方は以下の記事をごらんください。
プログラミングをするうえで関数を扱うことは必須です。Pythonでは組み込み関数と言われる便利なものが最初から備わっていますが、自分で関数を定義することもできます。 今回は関数を定義する方法からコメントの書き方などの基本的なルールを[…]
プログラミングの勉強での山場の一つであるPythonの関数の解説をしていきます。引数・戻り値の解説から組み込み関数一覧まで紹介しています。 関数とは? 関数とは入力値を処理してある値を出力する装置のことを言います。ブラックボッ[…]
引数とは?
関数に渡す入力値のことです。「ひきすう」と読み「いんすう」ではありません。後者の場合は「因数」になってしまいます。
また、関数の定義文で使用するものを「仮引数」といい、関数を実行するときに渡す具体的な値を「引数」と言います。
1 2 3 4 5 6 7 8 9 10 11 |
def sample(n): #nは仮引数 for i in range(n): print(i) sample(3) #3は引数 #出力結果 0 1 2 |
関数の定義を書いている1行目の「n」は仮引数と言われ、関数を実行している5行目の「3」を引数と言います。
引数ありとなしの違い
引数なし
以下のように引数を受け取らない関数の場合は、定義に仮引数を書く必要はありません。引数がない関数の実行結果は常に同じです。下は「関数です」を3回表示するだけのプログラムになります。
1 2 3 4 5 6 7 8 9 10 11 |
def sample(): for i in range(3): print('関数です') sample() #出力結果 関数です 関数です 関数です |
引数を持たない場合「関数」というより「コードのまとまり」というイメージですね。決まった処理をさせたいコードをまとめておけるのでプログラムがシンプルになって読みやすいです。
引数あり
引数がある場合の関数は以下のように定義します。引数を複数使いたいときはカンマ(,)で区切って書きましょう。
1 2 3 4 5 6 7 8 9 |
#引数が1つだけ def sample(n): for i in range(n): print(i) #引数が3つ def add_func(n, m, l): return (n + m) * l |
このように複数個の引数を定義したときは引数の位置が重要です。関数を実行するときは「n, m, l」の順に入力した数値が代入されます。
1 2 3 4 5 6 7 8 9 10 11 |
x = add_func(5, 6, 7) print(x) #出力結果 77 #(5+6)*7 x = add_func(7, 6, 5) print(x) #出力結果 65 #(7+6)+5 |
関数に渡す引数の順番が変わると実行結果も変わります。このように位置で変わる引数を位置引数と言います。
引数のデフォルト値
引数を定義するときにデフォルト値を持たせることができます。デフォルト値とは初期値のことです。これを決めておくことで関数の実行がシンプルになります。
関数を定義するときに「仮引数=デフォルト値」と書きます。以下の例では「l」だけデフォルト値を設定しています。すべての引数に設定することもできますし、このように一部だけ設定することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#l=10がデフォルト値 def add_func(n, m, l=10): return (n + m) * l #n,mだけ指定 x = add_func(5, 6) print(x) #出力結果 110 #デフォルト値を上書き x = add_func(7, 6, 5) print(x) #出力結果 65 |
関数を実行するときは、「n,m」だけに値を渡すと実行できます。また、「l」に値を渡すとデフォルト値を上書きできます。
まとめ
- 引数とは関数の入力値のこと
- 無くても関数を定義できる
- 引数を複数個使う場合はカンマ(,)で区切る
- 引数を渡すときは順序に注意
- 引数のデフォルト値を決めることができる
- 「仮引数 = デフォルト値」と定義する
今回の内容は以上になります。上のまとめを見てピンとこない内容があれば見なおしてみましょう。もっと理解を深めたい場合は自分でコードを書いてみましょう。
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]