最初の関数を定義してみよう

学習の目標

本章では、以下の内容を学習します。

  • def文を使った関数の定義方法を理解する
  • 関数の呼び出し方を習得する
  • 引数がない関数の作成方法を学ぶ
  • 挨拶関数を作って関数の基本を体験する

はじめに

前回の章で関数の基本概念について学びました。今度は、実際に自分で関数を作ってみましょう。

最初に作る関数は、できるだけシンプルなものから始めます。まずは引数(関数に渡す値)がない関数を作って、関数を定義するための基本的な書き方を覚えていきましょう。

関数を作ることで、同じ処理を何度も書く必要がなくなり、プログラムがすっきりと整理されることを実際に体験してみてください。

def文を使った関数の定義

Pythonで関数を作るときは、def文という特別な書き方を使います。defは「define(定義する)」という英単語の略で、「この部分は関数ですよ」ということをPythonに伝える役割があります。

関数を定義する基本的な書き方は以下のようになります。

def 関数名():
    実行したい処理

この書き方にはいくつかの重要なポイントがあります。

まず、defの後に半角スペースを入れて、関数名を書きます。関数名は変数名と同じように、自分で好きな名前を付けることができます。ただし、関数名の後には必ず()(丸括弧)を付ける必要があります。

そして、行の最後に:(コロン)を付けます。これは、「ここから関数の中身が始まりますよ」という合図です。

関数の中身となる処理は、インデント(字下げ)をして書きます。Pythonでは、このインデントによって「どこまでが関数の中身なのか」を判断しています。

最初の関数を作ってみよう

それでは、実際に最初の関数を作ってみましょう。まずは、挨拶メッセージを表示するだけのシンプルな関数を作ります。

VS Codeで新しいファイルを作成し、first_function.pyという名前で保存してください。そして、以下のコードを入力してみましょう。

def greet():
    print("こんにちは!")
    print("Python関数の学習を始めましょう。")

このコードでは、greetという名前の関数を定義しています。greetは「挨拶する」という意味の英単語です。

関数の中身では、2つのprint文を使って挨拶メッセージを表示しています。注意深く見ると、両方のprint文の前に同じ幅のインデント(空白4文字分)が入っていることがわかります。これによって、これらの処理がgreet関数の一部であることをPythonが理解できるのです。

ただし、このコードを実行しても、まだ何も表示されません。なぜなら、関数を「定義」しただけで、まだ「呼び出し」ていないからです。関数は定義しただけでは実行されず、別途呼び出しの処理が必要になります。

関数の呼び出し方

定義した関数を実際に動かすには、関数の呼び出しを行う必要があります。関数の呼び出しは、関数名に()を付けて書くだけです。

先ほどのコードに関数の呼び出しを追加してみましょう。

def greet():
    print("こんにちは!")
    print("Python関数の学習を始めましょう。")

# ここから関数を呼び出す
greet()

関数の定義と呼び出しの間に、空行を入れて見やすくしています。また、# ここから関数を呼び出すというコメントを入れて、どの部分が関数の呼び出しなのかを明確にしています。

このコードを実行してみましょう。VS Codeのターミナルで以下のコマンドを実行してください。

python first_function.py

実行すると、以下のような結果が表示されるはずです。

こんにちは!
Python関数の学習を始めましょう。

素晴らしいですね!これで、自分で作った関数が実際に動作することを確認できました。関数を呼び出すことで、関数の中に書いた処理が実行され、画面に挨拶メッセージが表示されました。

関数を何度も呼び出してみよう

関数の便利さを実感するために、同じ関数を何度も呼び出してみましょう。コードを以下のように修正してください。

def greet():
    print("こんにちは!")
    print("Python関数の学習を始めましょう。")

# 関数を3回呼び出してみる
print("1回目の挨拶:")
greet()

print("\n2回目の挨拶:")
greet()

print("\n3回目の挨拶:")
greet()

ここでは、説明のためにprint文を追加して、何回目の挨拶なのかがわかるようにしています。また、\nは改行を表す特殊な文字で、出力の間に空行を入れて見やすくしています。

このコードを実行してみましょう。

python first_function.py

実行結果は以下のようになります。

1回目の挨拶:
こんにちは!
Python関数の学習を始めましょう。

2回目の挨拶:
こんにちは!
Python関数の学習を始めましょう。

3回目の挨拶:
こんにちは!
Python関数の学習を始めましょう。

このように、一度関数を定義しておけば、greet()と書くだけで何度でも同じ処理を実行できます。もし関数を使わずに同じことをしようとすると、挨拶メッセージのprint文を6回(2つの文 × 3回)書く必要がありました。関数を使うことで、コードがすっきりと整理されることがわかりますね。

別の関数も作ってみよう

関数の作り方に慣れるために、もう一つ別の関数を作ってみましょう。今度は、学習を終えたときのメッセージを表示する関数を作ります。

先ほどのコードに以下の関数を追加してください。

def greet():
    print("こんにちは!")
    print("Python関数の学習を始めましょう。")

# 新しい関数を追加
def finish():
    print("お疲れさまでした!")
    print("関数の基本がわかりましたね。")

# 最初の挨拶
greet()

print("\n--- 学習中 ---")
print("関数について勉強しています...")

# 学習終了の挨拶
print("\n学習終了:")
finish()

この例では、finishという名前の新しい関数を追加しました。この関数は、学習が終わったときのメッセージを表示する役割を持っています。

コードを実行してみましょう。

python first_function.py

実行結果は以下のようになります。

こんにちは!
Python関数の学習を始めましょう。

--- 学習中 ---
関数について勉強しています...

学習終了:
お疲れさまでした!
関数の基本がわかりましたね。

このように、複数の関数を作って、適切なタイミングで呼び出すことで、プログラムの流れが明確になります。関数に適切な名前を付けることで、プログラムを読む人にとっても理解しやすくなります。

関数名の付け方のコツ

関数を作るときは、関数名の付け方が重要です。良い関数名を付けることで、後からコードを読み返したときに、その関数が何をするのかがすぐにわかります。

わかりやすい名前を付ける

関数名は、その関数が何をするのかがわかる名前にしましょう。例えば、挨拶をする関数ならgreet、計算をする関数ならcalculateというように、動作を表す動詞を使うとわかりやすくなります。

日本語でも英語でもOK

Pythonでは、関数名に日本語を使うこともできます。学習中は、理解しやすい日本語の名前を使っても構いません。

def 挨拶():
    print("こんにちは!")

挨拶()

ただし、一般的なプログラムでは英語の関数名を使うことが多いので、慣れてきたら英語の名前を使う練習もしてみましょう。

名前の規則を守る

関数名を付けるときは、変数名と同じ規則に従います。数字から始めることはできず、スペースも使えません。複数の単語を組み合わせるときは、アンダースコア(_)でつなぐか、単語の最初を大文字にする方法があります。

# アンダースコアでつなぐ方法
def say_hello():
    print("Hello!")

# 最初を大文字にする方法(あまり使われない)
def sayHello():
    print("Hello!")

初心者の皆さんは、まずはアンダースコアでつなぐ方法を覚えておきましょう。

関数の構造を理解しよう

ここで、関数の構造について整理してみましょう。関数は以下の部分から構成されています。

部分説明
def関数定義の開始を表すキーワードdef
関数名関数を識別するための名前greet
括弧引数を囲むための記号(今回は空)()
コロン関数の本体の開始を表す記号:
関数の本体実際に実行される処理(インデント必須)print("こんにちは!")

この構造を意識しながら関数を書くことで、正しい文法で関数を定義できるようになります。特に、インデントを正しく入れることは非常に重要です。インデントがないと、Pythonはその行が関数の一部だと認識できず、エラーが発生してしまいます。

関数定義の注意点

関数を定義するときに注意すべきポイントがいくつかあります。

インデントを正しく入れる

関数の中身は、必ずインデントを入れて書きましょう。VS Codeでは、Tabキーを押すか、スペース4文字分を入力してインデントを作ることができます。

# 正しい例
def greet():
    print("こんにちは!")  # インデントあり

# 間違った例
def greet():
print("こんにちは!")  # インデントなし(エラーになる)

関数を呼び出す前に定義する

Pythonでは、関数を使用する前に定義する必要があります。関数の定義より前に呼び出しを書くとエラーになってしまいます。

# 正しい例
def greet():
    print("こんにちは!")

greet()  # 定義の後に呼び出し

# 間違った例
greet()  # 定義より前に呼び出し(エラーになる)

def greet():
    print("こんにちは!")

関数名は重複しないようにする

同じ名前の関数を複数定義すると、後に定義した関数が前の関数を上書きしてしまいます。関数名は他の関数名や変数名と重複しないように注意しましょう。

まとめ

本章では、初めての関数定義について学習しました。

def文を使って関数を定義し、関数名と()を書くことで関数を呼び出すことができます。関数の中身はインデントを使って書き、一度定義した関数は何度でも呼び出すことができます。

シンプルな挨拶関数を作ることで、関数の基本的な書き方と動作を理解できました。関数を使うことで、同じ処理を繰り返し書く必要がなくなり、プログラムがより整理されることも体験できました。

次の章では、関数に値を渡して、より柔軟な処理ができるようになる方法を学んでいきましょう。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Starterプランでより詳しく学習

この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
関数の基本概念を理解しよう