関数を定義する
関数の呼び出し
ブロックとインデント
Pythonではユーザーが関数を定義して呼び出すことができます
ユーザー定義の関数は以下のように定義します
関数の定義
def 関数名(引数1, 引数2, …):
関数内の処理1
関数内の処理2
…
return 戻り値
defの後に関数名を書き、()の中には引数を記述します(引数は0個でも問題ありません)
関数を呼び出すとブロック内の処理が順に実行されて行きます。
return文を使うと呼び元に戻り値を返すこともできます、不要であればreturn文は省略も可能です(戻り値はNoneが返ります)
Pythonでは同じインデントの行をブロックとして扱うため、関数内のインデントはそろえるようにしてください
定義した関数は以下のようにして呼び出せます
関数の呼び出し
関数名(引数1, 引数2, …)
カッコ内には引数を定義されている数記述し、0個でも問題ありません。
また、変数に代入することで戻り値を受け取ることが可能です
val = 関数名(引数1, 引数2, …)
関数呼び出しの注意点として、関数は呼び出される前に定義されている必要があります。
関数の定義は呼び出しよりも前に記載してください
def func():
print("Hello World")
func() ←正しい例
func() ←ここだとまだfunc関数が定義されてないためエラーになる
def func():
print("Hello World")
関数やif文、for文などの処理が、どこからどこまでの文がその対象かを示すブロックを表すのに、Pythonでは同じ深さのインデント(字下げ)がされている文をブロックとして扱います。
下のようにインデントがずれると、別のブロックとして認識され構文エラーになります
def 関数名(引数1, 引数2, …):
関数内の処理1
関数内の処理2
関数内の処理3 ←この行は別のブロック扱いになってエラーになる
ブロックの中にさらにブロックがあるような入れ子の構造の場合、インデントをさらに下げて記述します
if 条件式:
処理1
処理1
if 条件式:
処理2
処理2
if 条件式:
処理3
処理3
インデントはタブかスペースで行い、何文字分などのルールは決まっていませんので、スペース4文字分など統一したルールを決めて利用すれば問題はありません