前の記事で、関数を使うと処理をまとめて再利用しやすくなることを学びました。
この記事では次のステップとして、実際に関数を作って呼び出す基本の形を学びます。
まずは引数なしの関数にしぼって、def の書き方と実行の流れをやさしく確認していきます。

この記事でわかること

  • 引数なし関数の基本の書き方
  • 関数を定義してから呼び出す流れ
  • 初心者がつまずきやすいコロンとインデントの注意点

完成コード(まず見てみよう)

# あいさつを表示する関数を定義します
def say_hello():
    print("こんにちは")
    print("Pythonの関数学習へようこそ")


print("はじめに1回呼び出します")
say_hello()

print("もう1回呼び出します")
say_hello()

コードの実行結果は次の通りです。

はじめに1回呼び出します
こんにちは
Pythonの関数学習へようこそ
もう1回呼び出します
こんにちは
Pythonの関数学習へようこそ

このコードはそのまま実行できます。
関数を1回定義しておくと、同じ処理を関数名で何度でも呼び出せることがわかります。

テーマの説明(やさしく)

関数を作るときは、def を使って「この名前の処理を作ります」と先に書きます。
引数なしの関数は、名前のあとに空の丸かっこ () を書く形が基本です。

基本の形は次のようになります。

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

def の行の最後にはコロン : が必要です。
その下の処理は、先頭を少し下げて書きます。これをインデントといい、「この処理は関数の中です」という意味になります。

また、関数は定義しただけではまだ実行されません。
実行したいときは、あとで 関数名() と書いて呼び出します。

具体例・補足説明

まずは「定義しただけ」の例を見てみます。

def show_message():
    print("このメッセージは関数の中です")


print("ここまでは表示されます")

このコードを実行しても、show_message() の中の文章は表示されません。
まだ呼び出していないからです。

次に、呼び出しを追加してみます。

def show_message():
    print("このメッセージは関数の中です")


print("呼び出す前")
show_message()
print("呼び出した後")

コードの実行結果は次の通りです。

呼び出す前
このメッセージは関数の中です
呼び出した後

この順番を見ると、プログラムは上から下へ進み、show_message() に来たタイミングで関数の中の処理を実行していることがわかります。

もう1つ、引数なし関数は「毎回同じ処理をしたい」ときに便利です。

def print_line():
    print("==========")


print("メニュー")
print_line()
print("1. はじめる")
print("2. 終了")
print_line()

このように、飾り線の表示のような共通処理をまとめるだけでも、コードが読みやすくなります。
引数や戻り値はまだ使っていませんが、まずはこの基本形をしっかり覚えるのがおすすめです。

引数なし関数は、print() だけでなく、複数の手順をまとめる使い方もできます。
たとえば、固定のデータを使って集計を表示する処理を1つにまとめる例です。

def show_sales_summary():
    sales = [1200, 980, 1500]
    total = sum(sales)
    count = len(sales)
    average = total // count

    print("売上件数:", count)
    print("合計売上:", total, "円")
    print("平均売上:", average, "円")


print("今日の集計")
show_sales_summary()

コードの実行結果は次の通りです。

今日の集計
売上件数: 3
合計売上: 3680 円
平均売上: 1226 円

この例では、関数の中で「リストを作る → 合計を出す → 件数を数える → 表示する」という流れをまとめています。
同じ集計表示を別の場所でも使いたいときに、show_sales_summary() と書くだけで呼び出せるのが関数の便利なところです。

おじちくワンポイント

関数を学び始めた直後は、役割が伝わる関数名にすると読みやすくなります。
たとえば func1 より show_messageprint_line のような名前のほうが、後で見返したときに理解しやすいです。

よくある勘違い・注意点

  • def で定義しただけでは関数は実行されません。関数名() と書いて呼び出します
  • def 関数名() の行末のコロン : を忘れるとエラーになります
  • 関数の中の処理はインデントが必要です。字下げがずれると IndentationError の原因になります

練習問題

問題1
say_good_morning() という引数なし関数を作り、おはようございます を表示するコードを書いてください。関数を2回呼び出して、同じ処理を再利用できることを確認してみてください。

問題2
show_total() という引数なし関数を作り、関数の中で prices = [100, 200, 300] を用意して合計を表示してください。関数を2回呼び出して、同じ集計処理を再利用する練習をしてみてください。

まとめ

  • 引数なし関数は def 関数名(): で作れます
  • 関数の中の処理はインデントして書きます
  • 関数は定義したあとに 関数名() と書いて呼び出します

次の記事