Re:ゼロから始める文系プログラマ

文系プログラマーがブログを書いてみた。

【Python・関数】~可変長引数~

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます!Shotaです。今日もPythonに関する記事を書いていきます!

今日は「可変長引数」について詳細に解説していこうと思います。

 

【目次】

 

 可変長引数

多数のデータを引数として関数に渡したい場合、いくつもの引数を予め用意するのは大変です。このようなときに可変長引数を使います。 

可変長引数とは、簡単に言えばいくつ変数を用意しても大丈夫な特殊な引数です。変数の前にアスタリスク(*)を書きましょう。これにより、いくつ変数を用意sてもそれらを可変長引数の値としてすべて扱えるようになります。呼び出す際には*は不要です。

可変長引数の場合、値は記述した引数のすべての値を一つにまとめたタプルとして出力されます。

 

#可変長引数
def makelist(*arg):
    data = {}
    n = 0
    total = 0
    for num in arg:
        data[n] = num
        n += 1
        total += num
    else:
        data['total'] = total
    print(data)

makelist(30, 50, 44, 66)

 

▼実行結果 

f:id:ShotaNukumizu_1000:20210502082245p:plain

 

《大まかな実行手順》

プログラムの説明:引数として渡した値とその合計を辞書にまとめるサンプル

引数として渡された値には、ゼロから順番に整数値をキーワードとして値を追加する

最後に変数totalで合計を追加する

 

(makelist関数の定義)

 

def makelist(*arg):

 

これで、argという引数にタプルが渡されます。関数の実行文では、このようにしてforでタプルargから順に変数numへと取り出してその値を辞書dataに追加しているのです。

 

for num in arg:
    data[n] = num

 

タプルからすべての値を取り出し終えたら、このようにしてtotalからキーワードに合計したtotalの値を代入していきます。

 

else:
    data['total'] = total

 

【本日のまとめ】

  • 可変長引数は、仮引数の前にアスタリスク(*)をつける。呼び出す前に書いた引数はタプルにまとめられる。 

 

本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。

この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!

明日は「関数の注意点」「lambda」について解説していきます。

今日も最後まで読んでくださりありがとうございました!

 

 

【参考図書】

gihyo.jp