ゼロからのPython入門講座関数の定義

関数の呼び出し方

関数の定義関数のメリットローカル変数とグローバル変数関数の呼び出し方

次のような関数を呼び出すとき、引数を指定する方法に2通りあります。

In [31]:
def func(arg1, arg2, arg3):
    print("arg1は:", arg1, "arg2は:", arg2, "arg3は:", arg3)

一つは、これまで見たように、

In [32]:
func("引数1", "引数2", "引数3")
arg1は: 引数1 arg2は: 引数2 arg3は: 引数3

と、引数を順番に並べる方法です。この方法で指定する書き方を、位置引数 といいます。

もう一つは、

In [33]:
func(arg1="引数1", arg2="引数2", arg3="引数3")
arg1は: 引数1 arg2は: 引数2 arg3は: 引数3

のように、 引数名=値 という形式で、引数名を指定して指定する方法です。この書き方を、キーワード引数 と言います。

キーワード引数の場合、位置引数と違って、好きな順番で引数を指定できます。

func("引数1", "引数2", "引数3")

func(arg3="引数3", arg2="引数2", arg1="引数1")

は、引数の順番は違いますが、どちらも同じ結果になります。

また、位置引数とキーワード引数を、混ぜて使うこともできます。arg1だけ位置引数で指定して、残りの arg2arg3 はキーワード引数で指定してみましょう。

In [34]:
func("引数1", arg2="引数2", arg3="引数3")
arg1は: 引数1 arg2は: 引数2 arg3は: 引数3

デフォルト引数

関数の引数には、指定されなかったときに使われるデフォルト値を指定できます。デフォルト値は、次のように 引数名=デフォルト値 の形式で指定します。

def 関数名(引数名=デフォルト値):
    ...

次の例では、引数 arg にはデフォルト値として 999が指定されています。

引数を指定して func1 を呼び出すと、その値が出力されます。

In [35]:
def func1(arg=999):
    print(arg)
In [36]:
func1(100)
100

引数を省略して func1 を呼び出すと、デフォルト値である 999 が出力されます。

In [37]:
func1()
999

もう一つ、今度は 関数の定義 で書いた fruit_price() を修正して、宛名をつけて金額を出力する関数を作ってみましょう。fruit_price()は、こんな関数でした。

def fruit_price(number_of_momo, number_of_mimkan):
    total_momo = number_of_momo * 200
    total_mikan = number_of_mimkan * 40
    total = total_momo + total_mikan

    return total

この関数を、金額を返すのではなく、金額を出力するようにしてみます。

宛名が指定されていればその宛名を、省略されると「上様」と出力するようにしましょう。

In [38]:
def fruit_price(number_of_momo, number_of_mimkan, name="上"):
    total_momo = number_of_momo * 200
    total_mikan = number_of_mimkan * 40
    total = total_momo + total_mikan

    print(name, "様: もも", number_of_momo, "個と、みかん", number_of_mimkan, "個で、", total, "円です")
    

この関数は、次のように name を指定して呼び出すと、指定した名前+様 〜 と出力します。

In [39]:
fruit_price(10, 20, 'python.jp')
python.jp 様: もも 10 個と、みかん 20 個で、 2800 円です

name を省略すると、上 様 〜 と出力します。

In [40]:
fruit_price(50, 60)
上 様: もも 50 個と、みかん 60 個で、 12400 円です


【Copyright © 2001-2020 python.jp】 【Privacy Policy】 python_japan