Python | ユーザー定義関数の使い方

2021年5月24日

公開日:2021/5/24

Pythonの関数には組み込み関数とユーザー定義関数がある.組み込み関数はPythonの公式の「組み込み関数」を参照すると有用である.以下ではユーザー定義関数について「関数作成の基本」,「引数を利用した関数作成」,「可変長引数を利用した関数作成」の構成で説明をする.

◆実施環境

Python 3.8.8

■関数作成の基本

関数を作成する際,defで宣言をし,後ろに作成する関数名と"():"を加え,次行インデントした上で,関数での処理をする.

def 関数名(): 
  関数での処理

以下では1行目に"greeting"という名の関数を作成し,2行目でprint関数の処理を実行した.4行目で作成したgreeting関数を利用した.

def greeting(): # 関数の定義
  print('Hello World') # 関数の処理

greeting() # 定義した関数の実行

■実行結果

Hello World

 

■引数を利用した関数作成

関数名の後ろの丸かっこ"()"には引数を入れることができる.引数とは変数を意味する.引数にはデフォルト値を入れることもできる.以下にデフォルト値がない構文(#1の処理)とデフォルト値がある構文(#2の処理)を作成する.
#1の処理では"subtraction"という名の関数(引き算)を作成し,引数x, yを設定した.
#2の処理では,引数"y"のデフォルト値を2にした.関数"subtraction"に値を1つしか入れていないので,yは2と見なされ,関数処理が実行された.

# 1の処理
def subtraction(x,y): # 引数を利用した関数の定義 
return x - y # 関数の処理("x-y"の計算) 

z = subtraction(10,4) # 定義した関数の実行 
print(z)

# 2の処理(引数にデフォルト値を利用)
def subtraction(x,y=2): # 引数を利用した関数の定義.yには2がデフォルト入力 
return x - y # 関数の処理("x-y"の計算) 

z = subtraction(10) # 定義した関数の実行 
print(z) # 関数の処理("10-2"の計算)

■実行結果

# 1の結果
6 # 10から6を引いた結果

# 2の結果
8 # 10から2(デフォルト値)を引いた結果

 

■可変長引数を利用した関数作成

引数を入力する際,引数の前に"*"もしくは"**"を付けることができる."*"と付けた引数は"タプル"の役目をし,"**"と付けた引数は"辞書"の役目をする.

# 1の処理(可変長引数に"*"を利用=>タプルの役割) 
def test1(arg1, *arg2):
  print(arg1) # arg1の値を出力
  print(arg2) # arg2の値を出力
  print(type(arg1)) # arg1の型を出力
  print(type(arg2)) # arg2の型を出力

test1(1,2,3,4,5) # 関数の処理

# 2の処理(可変長引数に"**"を利用=>辞書の役割)
def test2(arg3, **arg4):
  print(arg3) # arg3の値を出力
  print(arg4) # arg4の値を出力
  print(type(arg3)) # arg3の型を出力
  print(type(arg4)) # arg4の型を出力

test2(1,name='Taro', gender='man') # 関数の処理

■実行結果
#1の処理の結果:"*arg2″にはタプルとして2以降の値が格納
#2の処理の結果:"**arg4″には辞書として"name"以降のキーと値が格納

# 1の結果
1
(2, 3, 4, 5)
<class 'int'>
<class 'tuple'>

# 2の結果
1
{'name': 'Taro', 'gender': 'man'}
<class 'int'>
<class 'dict'>

以上