Python 関数のサンプル

Pythonの関数のサンプルです。

確認環境
・Python 3.7.0

目次

関数

def 関数名(引数)
   処理
   return 式;
  • 関数は処理をまとめることができます。
  • 関数名の前に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で呼び出し元に返しています。8行目は5が表示されます。
→3行目の引数(aとb)を仮引数、6行目の引数を実引数といいます。

 

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

デフォルト引数は、関数の引数にデフォルト値が設定されています。関数を呼ぶ側は、引数を省略できます。
関数のデフォルト値がある引数の箇所に、関数を呼ぶ側で引数を設定すると、関数を呼ぶ側で設定した引数が優先されます。

コード

デフォルト引数がある関数のサンプルです。

# 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を表示する

3行目は、右からcとbのみデフォルト引数としています。
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つ設定しています。
3行目は、3つの引数にデフォルト引数が設定されています。引数の値は、関数に設定した引数が優先されて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のサンプル
Python while文とdo…while文にあたる書き方のサンプル

△上に戻る