ここでは、Pythonにおける「関数」について解説しています。
この記事の対象
関数とは?
関数とは、プログラム内で特定の処理をまとめた再利用可能なコードブロックです。関数を使うことで、同じ処理を繰り返し実行する必要がある場合や、大きなプログラムをより小さな部分に分割することができます。
特に、同じような処理を何度も書くことはBugの元になります。そのような場合に関数とすることで簡略化して記述します。

関数の定義と呼び出し
関数は「def」キーワードを使用して定義します。関数名、引数、処理内容を指定します。関数を呼び出すには、関数名に括弧()を付けて呼び出します。
def test():
print("Hello, world!")
test()
引数と戻り値
def 関数名(引数1,引数2,...):
処理
return 戻り値
「引数」とは関数で使用する値のことです。引数は必ず指定するものではなく、加えて複数指定するものでもないことが特徴です。また、「戻り値」は関数の処理での結果で返ってくる値を指します。戻り値がない場合はreturnを省略できます。
デフォルト引数
関数の引数にはデフォルト値を設定することもできます。デフォルト引数が指定されている場合、引数が省略された場合にデフォルト値が使用されます。
def test(name="hoge"):
print("Hello, " + name + "!")
test() # Hello, hoge!
test("hogehoge") # Hello, hogehoge!
可変長引数
関数に可変長の引数を受け取る場合、アスタリスク(*)を使って引数を指定します。可変長引数はタプルとして関数内で扱われます。
def test(*numbers):
for num in numbers:
print(num)
test(1, 2, 3) # 1 2 3
test(10, 20, 30, 40) # 10 20 30 40
可変長引数については以下をご参照下さい。
関数を用いた使用例
#関数を用いた使用例
def test(x,y):
return (x+y)/2
print(test(60,77)) #68.5
出力結果は「68.5」です。計算結果が出力される簡単な処理になっています。「60」と「70」を関数内で計算してその結果を返す内容になっています。
【おまけ】def main() -> None: とは?
サンプルコードなどを見ていると、次のような書き方を見かけることがあります。
def main() -> None:
print("Hello, Python!")
if __name__ == "__main__":
main()
初学者が上記に出くわすと何のおまじない?となると思います。
結論から言うと、これは 型ヒント と呼ばれる書き方です。
-> None は、
この関数は戻り値を返しません
という意味です。
例えば、次の関数は戻り値があります。
def add(a: int, b: int) -> int:
return a + b
この場合、-> int は「整数を返す関数です」という意味です。
一方で、次のような関数は画面に表示するだけで、値を返していません。
def main() -> None:
print("処理を開始します")
このように、return で値を返さない関数には -> None と書くことがあります。
型ヒントは必要ということでなく、戻り値があるか?あった場合は何型なのか?が分かりやすいです。言ってしまえば、可読性がある書き方というだけです。
実務で使う場合は重宝しますが、趣味でPythonを使用する分にはこんな書き方もあるんだ程度の認識で良いかと思います。備忘録のため。ここでは紹介しました。
関数の操作
その他、関数を用いた使用例
| 項目 | 内容 |
| 任意のリスト内の中央値を求めるプログラム | リンク先では任意のリスト内の中央値を求めるプログラムを解説しています。 |
