pythonには関数という機能があります。
関数って\(f(x) = x^2\)とかですか?
そういうやつだよ。でも数式だけじゃなくていろいろなデータをあつかえるんだ。
中学校の数学ででてきた関数は
\(y = f(x)\)
のように、
数字を入れると数字が出てくるものでした。
Pythonの基本的な関数は
① データを入れる
② 処理をする
③ データを返す
というものです。
①入力データは文字列、数字、関数などどんなものでも入れられます。
②の処理では、計算だけではなく、ファイルを書いたり、画面に出力したりと様々な処理が行えます。
③の出力データも入力データの型によらず、どのような形式もとれます。
非常に汎用性が高いものです。
一般的な関数の形式は
def (変数1, 変数2 ・・):
    処理
    処理
    処理
    return 戻り値1, 戻り値2
関数記載の中はインデント(スペース4つまたはタブ)を入れる
という形式で記載します。
関数に入れる変数を 「引数(ひきすう)」
出てくる数を「戻り値」
と呼びます。
例えば
\(f(x_1, x_2) = x_1 \times 2 + x_2\)
という関数を定義するためには
def f(x1, x2): 
    y = x1 * 2 + x2
    return y 
x1, x2のところに変数を入れると計算した結果が出てきます。
f(3, 1)                                                                
# 7
f(10, -5)                                                              
# 15
この式は文字列でも成り立ちますので
f('a', 'b')                                                            
# 'aab'
となります。
途中で出力することもできます。
def f2(x1, x2): 
    y1 = x1 * 3 + x2 * 3 
    print(y1)    #ここで途中経過を出力する
    y2 = y1 * 2 
    return y2 
と定義します。
さきほどの文字列を入力します。
answer = f2('a', 'b')                                                  
# aaabbb
途中経過のy1の値が出力されています。
print(answer)
# aaabbbaaabbb
変数answerには結果が入っています。
途中でファイル出力することもできます。
def f2(x1, x2): 
    y1 = x1 * 3 + x2 * 3
    # 途中経過yをテキストファイルに保存する 
    with open('f2_process.txt', 'w') as f:
        f.write(y1)
    y2 = y1 * 2 
    return y2 
と関数を定義します。
answer = f2('a', 'b')
print(answer)
# aaabbbaaabbb
変数answerにさきほどと同じ結果が入っている一方で、
作業フォルダにはテキストファイルf2_process.txtが作成され、
f2_process.txt
aaabbb
途中経過y1の値が保存されています。
途中経過を書き出しておくことは、エラーの原因をつきとめるにあたって重要になります。
エラーがわからなければ、関数の途中で変数を書き出したりして、場所をつきとめましょう。
エラーがわからなければ、関数の途中で変数を書き出したりして、場所をつきとめましょう。
								


							
							
							
															
							
							
							
															
							
							
							
															
							
							
							
															






