この章では、自分でオリジナルの関数を作る方法について解説します。
関数の作り方
関数定義と呼び出し方
<関数定義の表記方法>
関数ブロック
※関数ブロックはインデントを行う。
注意
1)関数定義は関数を呼び出す前に定義すること。(一般にはプログラムの上段で定義する)
2)1つのプログラムの中に、同名の関数を重複して定義しないこと。
<関数の呼び出し方の表記方法>
<プログラム例>
# 関数helloを定義 def hello(): print('こんにちは!') # 関数helloを呼び出し hello()
<実行結果>
こんにちは!
※2-3行目で関数hello()を定義し、6行目で関数hello()を呼び出して実行している。
引数と戻り値
関数にあるデータを渡して処理をさせ、処理結果をデータで返してもらうことができます。
渡すデータを引数、もらうデータを戻り値と呼びます。
<引数と戻り値の表記方法>
処理
return 戻り値
※引数は複数指定することができる。
※戻り値は1つしか指定することができない。
# 関数plusを定義 def plus(x, y): z = x + y return z # 関数plusの結果を表示 answer = plus(10, 20) print(answer)
<実行結果>
30
※2-4行目で関数を定義している。
※7行目の右辺 plus(10, 20) の記述で、関数plusに引数10と20を渡して処理した結果(戻り値)が返されている。
※7行目の左辺 answer = の記述で、戻り値を変数answerへ代入している。
※関数plusは戻り値を返すので、7-8行目は変数answerを使わず、以下の様に記述することもできる。
<7-8行目を1行で記述する場合>
print(plus(10, 20))
ローカル変数とグローバル変数
関数定義の中で用いる変数をローカル変数、関数定義の外で用いる変数をグローバル変数と呼びます。
ローカル変数は関数の中でのみ有効な変数です。
<プログラム例>
# 関数定義の中の変数xはローカル変数 def change_x(x): x = 'Japan' print('1.ここは' + x + 'です') return x # 関数定義の外の変数xはグローバル変数 x = '日本' change_x(x) print('2.ここは' + x + 'です')
<実行結果>
1.ここはJapanです
2.ここは日本です
※8行目でグローバル変数xに、'日本'を代入している。
※9行目でグローバル変数xの値を関数change_xに引き渡している。
※関数内の3行目ではローカル変数に'Japan'を代入し、4行目でローカル変数xの値=Japanを表示している。その結果、「1.ここはJapanです」と表示される。しかし、この時点ではグローバル変数xは'日本'のままで変わっていません。
※そのため、10行目では「2.ここは日本です」と表示される。
注意)このようにグローバル変数とローカル変数を同じ変数名にすると分かり難くく不具合のもとになるため、変数名は各々別名としましょう。
次のページへ
Pythonトップへ戻る