Python 関数のサンプル

Pythonの関数のサンプルです。(確認環境:Python 3)

目次

サンプル 関数とは
  デフォルト引数がある関数
  関数の呼び出し時に引数名を指定する
  引数をタプルで受け取る
  引数をディクショナリで受け取る
  ローカル関数(関数の中に関数)

関数とは

  • 関数は処理をまとめることができます。
  • 関数名の前にdefを記述します。引数のあとにコロン(:)が必要です。
  • 引数は関数にデータを渡します。パラメータとも言います。
  • 引数は必須ではありません。
  • 呼び出し先の引数は、「仮引数」といいます。
  • 呼び出し元の引数は、「実引数」といいます。
  • returnは、関数の呼び出し元に値を返します。返す値を返り値または戻り値といいます。
  • returnは必須ではありません。
  • 以下はPythonの公式ドキュメントのユーザー定義関数のリンクです。
    https://docs.python.jp/3/reference/compound_stmts.html?highlight=if#function-definitions 

以下は、関数のサンプルです。

引数と戻り値がない場合

# coding: utf-8

def test1():
	print("テスト") # テストと表示される

test1() 

6行目のtest1()が、3行目の関数を呼んでいます。

引数と戻り値がある場合

# coding: utf-8

def test2(a,b):
	return a + b

num = test2(2,3)
print (num) # 5を表示する

6行目のtest2(2,3)が、3行目の関数を引数付きで呼んでいます。
test2(2,3)の引数の2は、3行目のtest2(a,b)のaになります。引数の3は、bになります。
4行目で計算した値をreturnで呼び出し元に返しています。

 

デフォルト引数がある関数

デフォルト引数は、関数の引数にデフォルト値が設定されています。
関数を呼ぶ側は、引数を省略できます。

デフォルト引数がある関数

# coding: utf-8

def test3(a=1,b=2,c=3):
	return a + b + c

num = test3()
print (num) # 6を表示する

3行目は、デフォルト引数を使用しています。
6行目は、引数を指定していませんがデフォルト引数の値で計算されてnumの値は6になります。

一部にデフォルト引数がある場合

デフォルト引数は、右から順に指定します。左端1つのみ指定することはできません。

# coding: utf-8

def test4(a,b=2,c=3):
	return a + b + c

num = test4(1)
print (num) # 6を表示する

6行目の引数の1は3行目のaにあたります。

デフォルト値がある箇所に引数を設定した場合

# coding: utf-8

def test5(a=1,b=2,c=3):
	return a + b + c

num = test5(5,6)
print (num) # 14を表示する

6行目は、引数を2つ設定しています。
引数の値は、関数に設定した引数が優先されてaは5、bは6、cは3として計算されます。

 

関数の呼び出し時に引数名を指定する

関数の呼び出し時に引数名を指定すると実引数が順番に並んでいなくても意図した仮引数に値を渡すことができます。

# coding: utf-8

def testcalc(a,b):
	return a - b

num = testcalc(b=1,a=8)
print (num) # 7を表示する

6行目は、(b=1,a=8)というように引数名をイコール(=)を使用して指定しています。

 

引数をタプルで受け取る

*変数

引数をタプルで受け取るサンプルです。
仮引数の前にアスタリスクをひとつ付けます。

# coding: utf-8

def test1(*a):
	print(type(a)) #<class 'tuple'>
	for c1 in a:
		print(c1) # 赤 黄 青

test1("赤","黄","青")

3行目は、仮引数の前にアスタリスク(*)がひとつ付いています。
4行目のtypeでは、引数の値はtupleと表示されます。
5,6行目は、for文で値を表示しています。

 

引数をディクショナリで受け取る

**変数

引数をディクショナリで受け取るサンプルです。
仮引数の前にアスタリスクをふたつ付けます。

# coding: utf-8

def test1(**a):
	print(type(a)) #<class 'dict'>
	for key in a:
		print(key,a[key]) #c1 赤 c2 黄 c3 青

test1(c1="赤",c2="黄",c3="青")

3行目は、仮引数の前にアスタリスク(**)がふたつ付いています。
4行目のtypeでは、引数の値はdictと表示されます。
5,6行目は、for文でキーと値を表示しています。

 

ローカル関数(関数の中に関数)

ローカル関数のサンプルです。

# coding: utf-8

def test1():
	def test2():
		print("ローカル関数")
	print("テスト")
	test2()

test1() #テスト ローカル関数が表示される

3行目は、関数です。
4行目は、関数の中に関数があります。ローカル関数です。
7行目で4,5行目が実行されます。
9行目は、最初に関数test1の文言「テスト」が表示された後、関数test2の「ローカル関数」が表示されます。

関連の記事

Python if文のサンプル
Python for文 処理を繰り返す(break/continue)

△上に戻る