初めてのPython #3 関数
function、関数を作成すればいつでも使い回せる。
関数はオブジェクトとして利用でき、中で何が行われているか意識しなくてよい。
# functionのヘッダはdefを記載。ヘッダの後には:コロンで締める。
# このあとに続くのがbodyのコードとなる
# functionのボディはインデントし、returnで値を返す
例1)
#三角形の面積を求める関数を作成しよう。
def triangle_area(base, height): # ヘッダ。コロン:で締める area = (1.0 / 2) * base * height # ボディ。インデントする return area # ボディ。最後にoutputの値を返す
# fuctionを定義したあとでそれをコールする
a1 = triangle_area(3, 8) print a1 a2 = triangle_area(14, 2) print a2
出力
12.0
14.0
例2)
# 温度の華氏を摂氏に変換する関数
def fahrenheit2celsius(fahrenheit): celsius = (5.0 / 9) * (fahrenheit - 32) return celsius
# 摂氏化し変換関数を呼び出して利用してみる
c1 = fahrenheit2celsius(32) c2 = fahrenheit2celsius(212) print c1, c2
出力
0.0 100.0
# 先ほどの華氏摂氏変換関数を利用し、華氏をケルビン(K)に変換する関数を作成する
# converts fahrenheit to kelvin
def fahrenheit2kelvin(fahrenheit): celsius = fahrenheit2celsius(fahrenheit) kelvin = celsius + 273.15 return kelvin
# 華氏をケルビンに変換する関数を呼び出す
k1 = fahrenheit2kelvin(32) k2 = fahrenheit2kelvin(212) print k1, k2
出力
273.15 373.15
例3)
# hello()でインプット無しアウトプット(return)無しのfunctionを作る。
# 何も入力せず"hello world"を表示させる
def hello(): print "Hello, world!"
# hello world表示関数を呼び出す
hello()
出力
Hello, world!
# return、返り値が無いhello world表示関数を呼び出すとどうなるか実験
h = hello() print h
出力
Hello, world!
None
# returnするものが何も無かったからNoneと返して来た。
# つまり、関数の最後の行には "return None"が暗黙的に省略されている