Pythonプログラミングの基本、関数をマスターしよう!
Pythonプログラミングを進めていくと、同じような処理を何度も書く場面が出てきます。そんな時に役立つのが「関数」です。関数を使うことで、コードをすっきりとまとめ、再利用しやすく、読みやすくすることができます。このステップでは、関数の基本的な定義方法と呼び出し方を学びましょう!
関数ってなんだろう?
関数とは、特定の処理をひとまとめにしたものです。例えば、「画面にメッセージを表示する」「2つの数字を足し算する」といった一連の動作を、一つの名前をつけて定義できます。
関数を使うメリット:
- 再利用性: 同じ処理を何度も書く必要がなくなり、関数名を呼び出すだけで済みます。
- 可読性: 処理の塊に名前が付くことで、コード全体の流れが分かりやすくなります。
- 保守性: 処理の修正が必要になった場合、関数定義の部分だけを修正すれば済みます。
関数の定義方法 (def)
Pythonで関数を定義するには、def
というキーワードを使います。基本的な構文は以下の通りです。
def 関数名(引数1, 引数2, ...): # ここに関数が行う処理を記述します (インデント必須!) # ... # 必要であれば return 文で値を返す return 戻り値
構成要素を見ていきましょう:
def
: 関数定義の開始を示すキーワードです。関数名
: 関数を呼び出すときに使う名前です。分かりやすい名前を付けましょう (通常は小文字とアンダースコアを使います)。(引数1, 引数2, ...)
: 関数が処理を行うために受け取る値 (データ) です。引数がない場合は()
のみを記述します。引数のことを「パラメータ」と呼ぶこともあります。:
(コロン): 関数定義のヘッダー部分の終わりを示します。- インデントされたブロック: ここに関数が実行する処理を書きます。インデント (通常はスペース4つ) が非常に重要です。
return 戻り値
: 関数の処理結果を呼び出し元に返す場合に記述します。return
文がない場合、関数は自動的にNone
という特別な値を返します。
簡単な例: 挨拶する関数
まずは、”Hello, Python!” と表示する簡単な関数を定義してみましょう。
# "say_hello" という名前の関数を定義する
def say_hello(): print("Hello, Python! ")
この例では、say_hello
という名前の関数を定義しています。この関数は引数を取らず (()
の中が空)、print()
を使ってメッセージを表示する処理を行います。return
文がないので、この関数は None
を返します。
関数の呼び出し方
定義した関数は、呼び出すことで初めて処理が実行されます。関数を呼び出すには、関数名の後に括弧 ()
をつけます。
関数名(引数1の値, 引数2の値, ...)
引数がある関数を呼び出す場合は、括弧の中に具体的な値 (引数) を指定します。
例: `say_hello` 関数を呼び出す
先ほど定義した say_hello
関数を呼び出してみましょう。
# say_hello 関数の定義 (再掲)
def say_hello(): print("Hello, Python! ")
# say_hello 関数を呼び出す
say_hello()
これを実行すると、コンソールに “Hello, Python! ” と表示されます。
引数を使ってみよう
関数は、外部からデータを受け取って処理を行うことができます。この受け取るデータのことを「引数 (ひきすう)」と呼びます。
引数ありの関数の定義
名前を受け取って、その人に合わせた挨拶をする関数を考えてみましょう。
# "name" という引数を受け取る関数 "greet" を定義する
def greet(name): print(f"こんにちは、{name}さん!")
この greet
関数は、name
という引数を一つ受け取ります。関数の中では、受け取った name
の値を使って挨拶メッセージを作成し、表示しています。f""
(f文字列) を使うと、文字列の中に変数の値を簡単に埋め込めます。
引数ありの関数の呼び出し
greet
関数を呼び出すときは、括弧の中に挨拶したい相手の名前 (文字列) を渡します。
# greet 関数の定義 (再掲)
def greet(name): print(f"こんにちは、{name}さん!")
# "greet" 関数を呼び出す (引数に "田中" を渡す)
greet("田中")
# 別の名前で呼び出す
greet("鈴木")
これを実行すると、以下のように表示されます。
こんにちは、田中さん!
こんにちは、鈴木さん!
このように、引数を使うことで、関数はより柔軟で汎用的な処理を行えるようになります。
戻り値 (return) で結果を返す
関数は、処理の結果を呼び出し元に返すことができます。このために使うのが return
文です。
def 関数名(引数...): # 何らかの処理... 計算結果 = ... return 計算結果 # 処理結果を返す
return
文が実行されると、関数の処理はその時点で終了し、指定された値が関数の呼び出し元に返されます。返された値は、変数に代入したり、他の処理で使ったりすることができます。
例: 2つの数値を足し算する関数
# 2つの数値を受け取り、その合計を返す関数 "add" を定義する
def add(a, b): result = a + b return result # 計算結果を返す
# add 関数を呼び出し、戻り値を変数 "sum_result" に代入する
sum_result = add(5, 3)
print(f"5 + 3 の結果は: {sum_result}") # 結果を表示
# 戻り値を直接 print 関数で使うこともできる
print(f"10 + 7 の結果は: {add(10, 7)}")
実行結果:
5 + 3 の結果は: 8
10 + 7 の結果は: 17
Docstring (ドキュメンテーション文字列)
関数がどのような処理を行うのか、引数や戻り値は何なのかを説明するために、Docstring (ドックストリング) を書くことが推奨されています。Docstring は、関数定義の直下にトリプルクォート ("""
または '''
) で囲んで記述します。
def add(a, b): """2つの数値を受け取り、その合計を返す関数。 Args: a (int or float): 1つ目の数値。 b (int or float): 2つ目の数値。 Returns: int or float: a と b の合計値。 """ result = a + b return result
Docstring を書いておくと、後で自分や他の人がコードを読む際に、関数の使い方をすぐに理解できるようになります。Python の組み込み関数 help()
や、多くの開発ツールが Docstring を利用して関数の説明を表示してくれます。
# add 関数の Docstring を表示する
help(add)
良い Docstring を書く習慣をつけましょう!
まとめ
今回は、Python における関数の基本的な定義方法と呼び出し方、引数、戻り値、そして Docstring について学びました。
- 関数は
def
キーワードで定義する。 - 関数を呼び出すには
関数名()
のように書く。 - 引数を使うと、関数にデータを渡せる。
return
文を使うと、関数から結果を受け取れる。- Docstring で関数の説明を書くのが良い習慣。
関数はプログラミングにおいて非常に重要な概念です。繰り返し練習して、自由自在に関数を使いこなせるようになりましょう! 次のステップでは、引数の様々な指定方法や戻り値について、さらに詳しく学んでいきます。