関数の基本
関数とはある入力に対して決まった出力をする仕組みのことです。関数の定義方法、利用方法について解説します。
使い方の記法
1. 関数名(引数1,引数2…)
2. 変数 = 関数名(引数1,引数2…)
引数は0個以上です。引数の型や個数は関数によって異なります。
2は戻り値があるパターンです。戻り値がタプル型の場合は複数の変数に戻り値を代入することができます。
【例】
1 2 3 4 |
import math r = math.sqrt(3) print(r) |
math.sqrt(num)は変数numの平方根を返す関数です。3の平方根を変数rに代入しています。
print(val)は変数valの情報を標準出力に出力します。
1 |
1.7320508075688772 |
関数を定義する方法
関数を自作することができます。重複しているコードや、機能が似たコードを関数にまとめることで、可読性や保守性が上がります。
定義の記法
def my_sum(x, y):
r = x+y
(実行文が続く…)
return r
関数はdefを使って定義をします。my_sumが関数名,xとyが引数です。実行文のブロックはインデントが必要です。
戻り値を返す場合はreturn 文を使います。上では関数内で変数rを宣言して、それを戻り値にしています。
pythonでは関数名は小文字で、_(アンダーバー)で区切るのが一般的です。
戻り値を複数返したい場合
戻り値を複数返すこともできます。以下の例では、戻り値を2つ返しています。
return x, y というのは xとyのタプルを返しています。
アンパックという機能を使うと、r1, r2 = multi(1,2) のように戻り値をそれぞれの変数に代入できます。
r = multi(3,6) で multi(3,6) の戻り値が、rにタプルとして代入されていることを確認しています。
1 2 3 4 5 6 7 8 |
def multi(x,y): return x, y r1, r2 = multi(1,2) r = multi(3,6) print(r1, r2) print(r) |
【結果】
1 2 |
1 2 (3, 6) |
引数の型について
pythonでは引数の型を明記しないので次のようなこともできます。引数を2つ渡し、その和を返しています。
引数は同じ型であれば、数字でも文字でも実行できます。
引数の型を定めたい場合は引数の型をチェックしたり、ドックストリングに使い方を明記しましょう。
1 2 3 4 5 6 7 8 |
def plus(i, j): return i+j r1 = plus(1,3) r2 = plus('ap','ple') print(r1) print(r2) |
【結果】
1 2 |
4 apple |
引数の型が異なるとエラーになります。
1 2 3 4 5 6 |
def plus(i, j): return i+j r3 = plus('あんこ',3) print(r3) |
【結果】
1 2 3 4 5 6 |
Traceback (most recent call last): File "test.py", line 4, in <module> r3 = plus('あんこ',3) File "test.py", line 2, in plus return i+j TypeError: must be str, not int |
コメントを残す