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))