初めての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"が暗黙的に省略されている