Pythonの関数とは?初心者でもわかる基本の定義と使い方をやさしく解説!
生徒
「先生!Pythonで“関数”ってよく聞くんですけど、それって何ですか?」
先生
「いいところに気づきましたね!関数とは、よく使う処理をひとまとめにして、あとから呼び出して使えるようにする“名前付きの作業セット”なんです。」
生徒
「なるほど……でもどうやって作ったり、使ったりするんですか?」
先生
「それではPythonでの関数の作り方と使い方、具体的な例を交えて説明していきましょう!」
1. Pythonの関数とは?その意味とメリットをわかりやすく解説
Python(パイソン)における関数とは、特定の処理をまとめてパッケージ化した「再利用可能な箱」のようなものです。プログラミング初心者の方には、「自分専用の便利な自動実行ボタン」とイメージするのが一番わかりやすいでしょう。
たとえば、料理をするときに「野菜を切る」「炒める」「味付けする」という工程を毎回一から指示するのは大変ですよね。これを「野菜炒めを作る」という一つのボタン(関数)にまとめておけば、次からはそのボタンを押すだけで、一連の作業が自動的に完了します。
- 効率化: 同じコードを何度も書く必要がなくなります。
- 整理整頓: プログラムが読みやすくなり、どこに何が書いてあるか一目でわかります。
- メンテナンス性: 処理を変えたいとき、1箇所を直すだけで全ての場所に反映されます。
実際のプログラムで考えてみましょう。たとえば、挨拶のメッセージを表示するだけのシンプルな処理も、関数にすることができます。
# これが「挨拶をする」という機能を持つ関数です
def say_hello():
print("こんにちは!Pythonの世界へようこそ!")
print("プログラミングを楽しんでいきましょう。")
このように、よく使う一連の動きに名前をつけて登録しておくことが、Pythonの関数の第一歩です。一度これを作っておけば、あとは好きな時にこの「名前」を呼ぶだけで、登録したすべての処理が動き出します。
2. Pythonで関数を定義する方法:defを使おう
Pythonで関数を作るには、def(ディー・イー・エフ)というキーワードを使います。キーワードとは、Pythonであらかじめ決められた特別な言葉です。
以下が関数の基本の書き方です。
def 関数の名前():
実行したい処理
例として、「こんにちは」と表示する関数を作ってみましょう。
def aisatsu():
print("こんにちは!はじめまして!")
この関数は「aisatsu(あいさつ)」という名前で作られています。
3. 関数の呼び出し方:作ったら実行してみよう!
関数を作っただけでは、何も起きません。実際に使う(実行する)には、その関数名に丸かっこ () をつけて書きます。
aisatsu()
このように書くと、「こんにちは!はじめまして!」というメッセージが表示されます。
こんにちは!はじめまして!
4. 関数の中に処理を複数書くこともできる!
関数の中には、複数の処理を入れることができます。たとえば、名前を表示して、そのあとに「よろしくお願いします」と続ける関数を作ってみましょう。
def self_intro():
print("わたしの名前はAIです!")
print("よろしくお願いします!")
呼び出すと、このような結果になります。
わたしの名前はAIです!
よろしくお願いします!
5. 「引数(ひきすう)」とは?関数に情報を渡してみよう
関数に入力する情報のことを引数といいます。英語では「argument(アーギュメント)」と呼ばれることもあります。
たとえば「名前」を引数として渡して、「○○さん、こんにちは!」と表示する関数を作れます。
def aisatsu(name):
print(name + "さん、こんにちは!")
この関数を使うときは、名前を入れて呼び出します。
aisatsu("太郎")
太郎さん、こんにちは!
6. 「戻り値(もどりち)」とは?結果を返す関数もある
関数には、結果を「返す」タイプもあります。これを戻り値(return値)と呼びます。
たとえば、2つの数字を足して、その合計を返す関数を作るとこうなります。
def tasizan(a, b):
return a + b
この関数を使って結果を出力するには、こう書きます。
answer = tasizan(5, 3)
print(answer)
8
returnは、「これを返しますよ〜」という意味の命令です。
7. なぜ関数を使うの?そのメリットをかんたんに説明
関数を使うと、同じ処理を何回も書かなくてよくなるので、とても便利です。さらに、プログラムが整理されて読みやすくなります。
- 書く手間がへる
- ミスが減る
- あとで直しやすい
たとえば、毎回「こんにちは!」を表示する場面が10回あるなら、関数にしてしまえば1行で呼び出すだけ!これがプログラミングの効率化の第一歩なんです。
まとめ
ここまで、Pythonプログラミングにおける非常に重要な概念である「関数」について、その基礎から具体的な応用方法まで詳しく解説してきました。関数をマスターすることは、初心者から脱却し、より高度なプログラミングの世界へ進むための大きな一歩となります。
Python関数の全体像をおさらい
プログラムを書いていると、どうしても「同じような処理」を何度も記述してしまう場面が出てきます。たとえば、データの計算、特定の形式でのログ出力、ユーザーへの定型挨拶などです。これらをその都度書いていると、コードが長くなり、どこで何を記述したのか把握しづらくなります。そこで登場するのが「関数」です。
関数は、一言で言えば「一連の処理をひとまとめにした便利な道具箱」です。一度定義してしまえば、あとは名前を呼ぶだけで何度でも同じ処理を実行できます。これにより、開発効率は劇的に向上し、コードの見た目も驚くほどスッキリします。
関数の基本構造と定義のルール
Pythonで関数を定義する際には、予約語である def を使用します。関数の名前は、その関数が「何をするものか」がひと目でわかるような動詞系の名前(例:calculate_total や send_message など)をつけるのがベストプラクティスです。
# 基本的な関数の定義例
def show_welcome_message():
print("Pythonの世界へようこそ!")
print("楽しくプログラミングを学びましょう。")
# 関数の呼び出し
show_welcome_message()
Pythonの世界へようこそ!
楽しくプログラミングを学びましょう。
柔軟性を生む「引数」と「戻り値」の仕組み
関数をさらに強力にするのが「引数(ひきすう)」と「戻り値(もどりち)」です。引数を使うことで、外部からデータを受け取り、その値に応じて処理内容を変化させることができます。一方、戻り値(return)は、関数内で計算したり加工したりした結果を、呼び出し元に「成果物」として返却するための仕組みです。
以下のサンプルプログラムでは、商品の価格と個数を引数として受け取り、税込み価格を計算して返す関数を作成してみます。
# 消費税を計算して合計金額を返す関数
def calculate_tax_inclusive_price(price, count):
tax_rate = 1.10 # 消費税率10%
total = price * count * tax_rate
return int(total) # 整数値として返す
# 500円の商品を3個買った場合
final_price = calculate_tax_inclusive_price(500, 3)
print("お支払い合計金額は " + str(final_price) + " 円です。")
お支払い合計金額は 1650 円です。
実務でも役立つ!関数化の3大メリット
関数を積極的に活用することで、プログラミングには以下のような多大な恩恵がもたらされます。
- 再利用性の向上: 一度作った関数は、他のプログラムや別の箇所で何度でも使い回すことができます。
- 保守性の改善: もし処理内容に変更が必要になった場合、関数の定義部分を1箇所修正するだけで、すべての呼び出し箇所に反映されます。これは大規模な開発において非常に重要なポイントです。
- 可読性の向上: メインの処理の流れが「関数を呼び出すだけ」のシンプルな記述になるため、プログラム全体の構造が読み解きやすくなります。
ステップアップのためのヒント
Pythonには、私たちが自分で作る「ユーザー定義関数」のほかに、あらかじめ用意されている「組み込み関数」(print()やlen()など)や、標準ライブラリ、外部パッケージに含まれる膨大な関数が存在します。まずは自分で簡単な関数を作る練習を積み、徐々に既存の便利な関数を組み合わせて使えるようになると、Pythonでのプログラミングがどんどん楽しくなっていくはずです。
まずは、今日学んだ def、引数、return を使って、身の回りのちょっとした計算を自動化するプログラムから書いてみてはいかがでしょうか。小さな積み重ねが、エンジニアとしての大きな実力に繋がります。
生徒
「先生、まとめまで読んで関数の凄さがよくわかりました!要するに、面倒な作業を全部押し付けられる自分専用の『全自動ロボット』を量産するようなイメージですよね?」
先生
「その例え、すごくいいですね!まさにその通りです。プログラムが長くなってくると、どこに何を書いたか混乱しがちですが、関数という単位で区切っておけば頭の中も整理されますよ。」
生徒
「引数と戻り値が少し難しかったんですけど、材料(引数)を渡して、工場(関数)で加工して、完成品(戻り値)をもらうっていう流れだと考えれば納得できました。」
先生
「素晴らしい理解度です!特に return を忘れると、関数の中で計算しても結果が外に出てこないので注意してくださいね。あとは、実際に手を動かしてコードを書くのが上達への近道です。」
生徒
「はい!自分で計算ツールやメッセージ作成ツールを関数で作ってみます。Pythonって学べば学ぶほど、効率化できることが増えてワクワクしますね!」
先生
「その意気です。次はもっと複雑な条件分岐やループを組み合わせた関数にも挑戦してみましょう。どんどんコードが美しく、機能的になっていきますよ。」