関数をマスターしよう (5/5)
作成:2011-01-24 10:11
更新:2017-06-03 14:14
更新:2017-06-03 14:14
■可変長引数
引数について、もう1つ説明をしておきたいのが「可変長引数」と呼ばれるものについてです。可変長引数というのは、「長さ(引数の数)が可変な引数」です。つまり、「いくつ引数を付けてもOK」という特別な引数のことです。
「引数がいくつあってもOK? それ、どうやって定義するの?」と不思議に思うでしょうが、できるんです。「定義できても、どうやって値を受け取るの?」と思うでしょうが、受け取れるんです。
可変長引数というのは、わかりやすくいってしまえば、「たくさんの引数をコンテナにまとめて受け取れる引数」なのです。つまり、「リストを引数に設定したもの」といえます。ただし、リストを引数に書くのは面倒ですから、(リストに保管しておく値を)1つ1つ引数に用意したら自動的にそれらをまとめて渡してくれるようにしてあるのですね。
この可変長引数は、以下のように定義します。
※関数の定義(4)
引数に用意する変数名の前にアスタリスク(*)をつけると、その引数が可変長引数として設定されます。この引数には、いくつも引数として用意した値がタプルとしてまとめられて渡されます。後は、そこから必要な値を取り出し処理するだけです。
では、これも簡単なサンプルを挙げておきましょう。(下のリスト欄に掲載しておきます)
ここでは、calc(*num)というようにして関数を定義しています。これで、numという変数に、入力された引数すべてがコンテナにまとめられて渡されます。後は、このnumをforなどで繰り返し処理していけばいい、というわけです。
「引数がいくつあってもOK? それ、どうやって定義するの?」と不思議に思うでしょうが、できるんです。「定義できても、どうやって値を受け取るの?」と思うでしょうが、受け取れるんです。
可変長引数というのは、わかりやすくいってしまえば、「たくさんの引数をコンテナにまとめて受け取れる引数」なのです。つまり、「リストを引数に設定したもの」といえます。ただし、リストを引数に書くのは面倒ですから、(リストに保管しておく値を)1つ1つ引数に用意したら自動的にそれらをまとめて渡してくれるようにしてあるのですね。
この可変長引数は、以下のように定義します。
※関数の定義(4)
def 関数 ( *引数 ):
引数に用意する変数名の前にアスタリスク(*)をつけると、その引数が可変長引数として設定されます。この引数には、いくつも引数として用意した値がタプルとしてまとめられて渡されます。後は、そこから必要な値を取り出し処理するだけです。
では、これも簡単なサンプルを挙げておきましょう。(下のリスト欄に掲載しておきます)
ここでは、calc(*num)というようにして関数を定義しています。これで、numという変数に、入力された引数すべてがコンテナにまとめられて渡されます。後は、このnumをforなどで繰り返し処理していけばいい、というわけです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
def calc(*num): total = 0 for n in num: total += int(n) print('合計:' + str(total)) print('平均:' + str(total // len(num))) calc(123, 456, 789, 246, 357, 910)
※関連コンテンツ