LoginSignup
0
2

More than 5 years have passed since last update.

Python入門 関数

Posted at

関数

関数は、あるまとまった処理を関数として処理することができます。

関数の呼び出し

以下では関数の基本的な呼び出し方を記述しています。Pythonでは関数をdefで定義できます。関数を実行する時は、def以降に書いた関数名()を記述することで関数で定義した処理を実行することができます。


def addition():
    a = 1
    b = 2
    c =a + b
    print(c)

addition()
実行結果
3

引数

関数を定義するときには、引数を設定することができます。以下の例では、引数としてaとbを設定してます。引数は関数を呼び出すときに記述することで引数を設定した関数を実行できます。


def addition(a,b):
    print("a =",a)
    print("b =",b)
    print("a + b =",a+b)

addition(1,2)
実行結果
a = 1
b = 2
a + b = 3

以下の例では、aとbを乗算の処理を行う関数を定義しています。


def func(a,b):
    print("a =",a)
    print("b =",b)
    print("a * b =",a*b)

func(4,3)
実行結果
a = 4
b = 3
a * b = 12

関数で乗算処理を行う引数は文字列に適用することできます。


def func(a,b):
    print("a =",a)
    print("b =",b)
    print("a * b =",a*b)

func("hello",3)
実行結果
a = hello
b = 3
a * b = hellohellohello

キーワード引数

引数は、キーワードを設定することもできます。関数を実行するときに、キーワードなしで引数を書いた場合は、順番通りに引数が適応されますが、キーワードを指定すれば、関数で設定した引数の順番ではなく、キーワードで設定した引数が適応されます。


def func(a,b):
    print("a =",a)
    print("b =",b)
    print("a * b =",a*b)

func(b=9,a=3)
実行結果
a = 3
b = 9
a * b = 27

デフォルト引数

デフォルト引数では、引数にあらかじめデフォルト引数を設定することができます。関数を呼び出す際は、デフォルト引数を設定していない引数のみを記述すれば、関数は自動的にデフォルト引数を適用して処理を行います。


def func(a,b=100):
    print("a =",a)
    print("b =",b)
    print("a * b =",a*b)

func(10)
実行結果
a = 10
b = 100
a * b = 1000

デフォルト引数を設定した場合でも、関数を実行する際にデフォルト引数にあたる引数も記述すれば、そちらの方の引数が適用されます。


def func(a,b=100):
    print("a =",a)
    print("b =",b)
    print("a * b =",a*b)

func(10,200)
実行結果
a = 10
b = 200
a * b = 2000

複数の引数をタプルで受け取る

引数の前に*を記述することで、引数はタプルとして受け取ることができるようになります。


def func(*args):
    print(args)

func(1,2,3,4)
func(1,2,3,4,5,6,7,8,9)
実行結果
(1, 2, 3, 4)
(1, 2, 3, 4, 5, 6, 7, 8, 9)

複数のキーワード引数を辞書で受け取る

引数の前に**と書くと、キーワード引数を指定することで、辞書として受け取ることができるようになります。


def func(**kwargs):
    print(kwargs)

func(a=1,b=2)
func(a=1,b=2,c=3,d=4)
実行結果
{'a': 1, 'b': 2}
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

リストやタプルを展開して指定

関数で設定した引数は、リスト型を受け取って実行することもできます。その場合は、リスト型を格納した変数に*を記述することで、リスト型のデータを関数の引数として実行することができます。


def func(a,b,c):
    print("a =",a)
    print("b =",b)
    print("c =",c)
    print("a + b + c =",a+b+c)

lis = [1,2,3]

func(*lis)
実行結果
a = 1
b = 2
c = 3
a + b + c = 6

辞書を展開して指定

関数で設定した引数は、辞書型を受け取って実行することもできます。その場合は、辞書型を格納した変数に**記述することで、辞書型のデータを関数の引数として実行することができます。


def func(a,b,c):
    print("a =",a)
    print("b =",b)
    print("c =",c)
    print("a + b + c =",a+b+c)

dic = {'a': 1, 'b': 2, 'c': 3}

func(**dic)
実行結果
a = 1
b = 2
c = 3
a + b + c = 6

戻り値を指定

戻り値は、処理した結果を返します。以下の例では、aとbで乗算した結果を返します。


def func(a,b):
    return a * b

x = func(10,20)

print(x)
print(type(x))
実行結果
200
<class 'int'>

def func(a,b):
    return a * b

x = func(0.01,0.2)

print(x)
print(type(x))
実行結果
0.002
<class 'float'>

複数の戻り値を指定

戻り値は複数の結果も返すことができます。


def func(a,b):
    return a + b, a * b, a / b

x = func(10,20)

print(x)
print(type(x))
実行結果
(30, 200, 0.5)
<class 'tuple'>

ラムダ式

ラムダ式は、名前を付けずに簡易的に関数を定義することができます。


func = lambda x,y:x+y
print(func(10,100))
実行結果
110

mapとlistを使用すると、リスト型のデータに適用することができるようになります。


l = [0,1,2,3]
print(list(map(lambda x: x**2,l)))
実行結果
[0, 1, 4, 9]
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2