Home >> Python >> Function


■関数の定義と呼出しの記述例

☆パラメータのない関数の定義と呼出し

	
	# 何もしないtrivial関数の定義と呼出し
	
	def trivial():
	    pass
	
	trivial()
	

	# Helloと表示するだけのprintHello関数の定義と呼出し
	
	def printHello():
	    print( "Hello" )
	
	printHello()
	

☆パラメータのある関数の定義と呼出し


	# 階乗n!を計算して表示するfactorial関数の定義と呼出し
	
	def factorial(n):
		i = 1
		result = 1
		while i <= n:
			result = result * i
			i = i + 1
		print( result )
	
	factorial( 10 )
	factorial( 1000 )  # これは時間が掛かります
	

☆値を返す関数の定義と呼出し


	# 値を戻す関数の呼出し
	# 代入文の式として、あるいは他の関数の実パラメータとして
	
	def square(x):
		return x*x
	
	def greater(x,y):
		if x >= y:
			return x
		else:
			return y
	
	xxx = square( 32*45 )
	print( 32*45, xxx )
	print( square( greater(32,45)))

	

	# 最大公約数と最小公倍数を、与えられた2つのパラメータから
	# 求めて、返してくれるgcdlcm関数の定義と呼出し
	
	def gcdlcm(x, y):
		w = max(x, y)
		u = min(x, y)
		while w % u != 0:
			w, u = u, w % u
		return u, x / u * y
	
	xxx, yyy = gcdlcm(236, 124)
	print( xxx, yyy )
	

☆再帰を用いた関数の定義と呼出し


	# 階乗n!計算の再帰を用いた関数版
	
	def rfactorial(n):
		if n==1:
			return 1
		else:
			return n*rfactorial(n-1)
	
	zzz =rfactorial(10)
	print(zzz)
	

☆戻り値のある関数をリストの各要素に適用する


	# パラメータの二乗を返す関数makeSquare
	
	def makeSquare(x):
		return x**2
	
	print( makeSquare(12))
	
	# makeSquareをリストに適用して、その結果を得る
	
	xlist = [ 12, 11, 4, 5, 8, 9, 16]
	ylist = map(makeSquare, xlist)
	print( ylist )
	

	# map関数、filter関数、reduce関数

	def square(x):
		return x*x
	
	# mapは、シーケンスの個々の要素に適用される
	
	xlist = [ 12, 45, 67, 89, 64, 73, 49, 37 ]
	print( map(square, xlist) )
	
	# filterは、個々の要素に適用され、該当する要素から
	# 構成されるシーケンスを生成する
	
	def evenfilter( x ):
		return x % 2 == 0
	
	print( filter(evenfilter, xlist))
	
	# reduceは、先頭から隣合う要素に適用され、その結果
	# は、次の隣合う要素に更に適用される、、ということを
	# 繰返し、最後のスカラー値を得る
	
	def adder(x, y):
		return x+y
	def sub( x, y):
		return x-y
	
	print( reduce(adder, xlist))
	print( reduce(sub, xlist))

	

ControlPython Class and Objects