2017年12月20日水曜日

[Python] 関数

計算ロジックを保存したものを関数と呼びます(計算ロジックは「処理」と呼ばれることも多い).また,関数のことをメソッドと呼ぶこともあります.

関数を作る場合は,以下のように記述します.
    def 関数名(引数): 
    ...処理
    return()
1行目の行頭には def と入れて,行末にはコロンを入れます.
2行目以降は,行頭に半角の空白を入れる(インデント)必要があります.
計算結果を返すときは return を使います.

例としてある値(引数)に 2 を足してから 4 を掛けるという計算を行う関数は以下のように記述します.
>>> def sample_function(data):
...     return((data + 2) * 4)

引数(x)を2とした場合の例:
>>> x = 2
>>> sample_function(x)
16

引数(y)を3とした場合の例:

>>> y = 3

>>> sample_function(y)
20

関数の演算結果を複合させて使うことも可能です.
>>> sample_function(x) + sample_function(y)
36

引数を複数にすることも可能です.
>>> def f(a, b):
...     return a + b
... 
この定義した関数 f() を使ってみると以下のようになります.
>>> f(1, 2)
3
>>> print(f(123, 456))
579

関数の引数にはデフォルト値を設定することができます.引数が渡されない場合はデフォルト値が使われます.
>>> def g(a, b = 100):
...     return a + b

引数bを省略した例
>>> g(5)
105
引数a, bを指定した例
>>> print(g(5, 10))
15

関数を呼び出す時に,明示的に引数名を指定して呼び出すことができます.このような引数のことを名前付き引数と呼びます.
>>> def h(a, b = 1, c = 1):
...     return a * 100 + b * 10 + c

引数指定しない場合(引数b, cのデフォルト値は与えられているが,aのデフォルト値は与えられていない).
>>> h()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: h() missing 1 required positional argument: 'a'
aにはデフォルトの引数が与えられていないのでエラーとなります.

aを指定した場合(指定した値が自動的にaに入る).
>>> h(1)
111

aとcを指定した場合.

>>> h(1, c = 2)
112

上の例でも"a = 1"としなくても自動的に最初の引数に入っていることからもわかるように,"a = , b = , c ="と指定しなくても良い.
>>> h(3, 3, 3)
333
a, b, cの全てを指定した場合.
>>> print(h(a = 9, b = 8, c = 7))
987





0 件のコメント :

コメントを投稿