ここまでで、変数・型・演算、リストと辞書、そして if 文と for 文の基本を整理しました。次に必要になるのは、複数の処理をひとまとまりにして扱うための仕組みです。そこで今回は、Pythonの基礎として重要な関数を整理します。

コードを書いていると、同じような処理を何度も使いたくなる場面が出てきます。そのたびに同じ内容を繰り返し書くのではなく、処理に名前を付けてまとめておくと、コードは読みやすくなり、修正もしやすくなります。関数は、そのための基本的な仕組みです。

この記事で整理すること

  • 関数とは何か
  • 関数の基本的な形
  • 引数と返り値の考え方
  • 関数がデータサイエンスの中でどう役立つか

目的は、関数を「難しい文法」としてではなく、「処理をまとめるための道具」として理解することです。ここを押さえると、この先のコードの見通しがかなりよくなります。

関数とは何か

関数は、処理に名前を付けてまとめる仕組みです。ある処理を何度も使いたいとき、その処理をひとまとまりにしておくと、必要な場面で呼び出せるようになります。

たとえば、「あいさつを表示する」という処理を関数にすると、次のように書けます。

def greet(): print("Hello")

このコードでは、greet という名前の関数を定義しています。ただし、この段階ではまだ処理は実行されません。関数は、まず定義し、そのあとで呼び出して使います。

def greet(): print("Hello") greet()

このように書くと、Hello が表示されます。つまり、関数は「処理を定義する部分」と「実際に使う部分」が分かれているのが特徴です。

関数の基本的な形

関数は、def を使って定義します。基本の形は、「関数名」「丸かっこ」「コロン」、そしてその下にインデントして処理を書く、という流れです。

def greet(): print("Hello") print("Welcome")

この場合、インデントされている2行が関数の中身です。Pythonでは、ここでもインデントが重要です。どこまでが関数の中に含まれる処理なのかを、字下げで表します。

関数名は自由に付けられますが、何をする関数なのかがわかる名前にしておくことが重要です。名前が適切だと、あとでコードを見返したときに意味をつかみやすくなります。

引数とは何か

関数には、外から値を渡して使うことができます。このときに使うのが引数です。引数を使うと、同じ処理の形を保ちながら、与える値だけを変えられます。

たとえば、相手の名前を変えながらあいさつを表示したいとします。その場合は、次のように書けます。

def greet(name): print("Hello") 
print(name) greet("Aki") greet("Mina")

このコードでは、関数の中に name という引数があります。そして、関数を呼び出すときに文字列を渡しています。すると、その値が関数の中で使われます。

引数を使うと、処理の骨組みはそのままにして、中で使う値だけを変えられます。これは、データ分析や計算処理をまとめるときにも非常に重要です。

返り値とは何か

関数は、処理を実行するだけでなく、その結果を外に返すこともできます。このときに使うのが返り値です。返り値は return を使って書きます。

def add(a, b): return a + b result = add(3, 5)
print(result)

このコードでは、add という関数が 2つの数を受け取り、その和を返しています。そして、その結果を result に入れて表示しています。

ここで重要なのは、printreturn は役割が違うということです。print は画面に表示するだけですが、return は結果を関数の外へ返します。後で値を計算に使いたい場合は、return が必要です。

数学の関数との違い

数学に慣れていると、Pythonの関数も同じ感覚で見たくなりますが、両者は完全には一致しません。数学の関数は、入力に対して出力を対応させる写像として考えます。一方、Pythonの関数は、それに加えて「処理をまとめる仕組み」という性質を持っています。

たとえば、Pythonの関数は計算結果を返すだけでなく、表示をしたり、データを整えたり、繰り返し処理をまとめたりもできます。つまり、Pythonの関数は数学の関数より広い意味で使われています。

ただし、入力を受け取り、結果を返すという考え方は共通しています。そのため、数学的な見方は役立ちますが、Pythonでは「処理のまとまり」という側面も必ず意識する必要があります。

関数を使う理由

関数を使う理由は大きく3つあります。1つ目は、同じ処理を何度も書かずに済むことです。2つ目は、コードの意味がわかりやすくなることです。3つ目は、修正がしやすくなることです。

たとえば、同じ計算を複数回使う場合、そのたびに処理を直接書くと、コードが長くなりやすくなります。関数としてまとめておけば、必要な場面で呼び出すだけで済みます。

また、処理が関数として分かれていると、「この部分は何をしているのか」が見えやすくなります。コードが長くなっても、関数ごとに役割を分けて考えられるようになります。

データサイエンスでどう役立つか

データサイエンスでは、同じような処理を何度も使うことが多くあります。たとえば、データを読み込む処理、特定の列を取り出す処理、簡単な統計量を計算する処理などは、ひとまとまりにしておくと便利です。

また、分析の途中では、処理の手順を整理しておくことが重要です。関数を使うと、何をする処理なのかを名前で示せるため、コード全体の見通しがよくなります。これは、あとで自分が見返すときにも大きな助けになります。

現段階では、複雑な関数を書く必要はありません。まずは、短い処理を関数としてまとめる感覚を身につけることが重要です。

よくある混乱

ここでは、最初に混乱しやすい点を整理しておきます。

  • 関数を定義しただけでは処理は実行されない
  • 引数と返り値の役割が混ざる
  • printreturn の違いがあいまいになる
  • インデントの範囲がずれる

特に、「関数を書いたのに何も起きない」という状態はよくあります。これは、定義しただけで呼び出していないことが原因です。また、計算結果をあとで使いたいのに print だけで終わらせてしまう、という混乱も起こりやすいです。

関数では、定義すること、呼び出すこと、値を返すことの3つを分けて理解する必要があります。

今の段階で押さえるべきこと

現時点で必要なのは、高度な関数の書き方を覚えることではありません。まずは、関数が「処理をまとめて名前を付ける仕組み」であることを確実に押さえることが重要です。

そのうえで、引数を使うと入力を変えられること、返り値を使うと結果を外で利用できることを理解しておく必要があります。ここを明確にしておくと、この先のコードがかなり読みやすくなります。

次に学ぶこと

ここまでで、関数の基本を整理しました。次は、ファイルを読むとはどういうことかを学びます。

データサイエンスでは、実際のデータをファイルから読み込む場面が出発点になります。そのため、コードの中だけで完結する処理から一歩進んで、外部のデータを扱う感覚を身につけていく必要があります。

まとめ

関数は、処理をまとめて名前を付けるための仕組みです。関数を使うと、同じ処理を何度も書かずに済み、コードの見通しもよくなります。

また、引数を使うと入力を変えられ、返り値を使うと結果を外で利用できます。関数は、Pythonの中でも特に重要な基本事項のひとつです。ここを押さえておくと、この先のデータ処理や分析のコードも整理して読めるようになります。