第14回|Pythonの関数とは?処理をまとめて何度も使う方法をやさしく解説 | はじめてのPython

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第14回|Pythonの関数とは?処理をまとめて何度も使う方法をやさしく解説 | はじめてのPython

はじめてのPython | 第14回

目次

1. はじめに

この回では、関数を作って処理をまとめる方法を学びます。前回は、辞書を使って名前付きのデータを扱う方法を確認しました。

プログラムが長くなると、同じような処理を何度も書くことがあります。そのような処理を1か所にまとめて、必要なときに呼び出せるようにするのが関数です。

2. この回で学ぶこと

  • 関数とは何か
  • def を使った関数の作り方
  • 関数の呼び出し方
  • 処理を分ける理由
  • 同じ処理を再利用する方法

3. 概念の説明

関数は、ひとまとまりの処理に名前を付けたものです。先に関数を定義しておくと、そのあとで同じ処理を何度でも呼び出せます。

関数は def を使って定義します。

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

def greet(): は、greet という名前の関数を作るという意味です。次の行から、インデントした部分がその関数の処理になります。

関数は、定義しただけでは実行されません。実行するには、関数名のあとに () を付けて呼び出します。

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

greet()

この結果は次のようになります。

こんにちは

同じ関数は何度でも呼び出せます。

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

greet()
greet()
greet()

この結果は次のようになります。

こんにちは
こんにちは
こんにちは

関数を使うと、同じ print() を何度も書かずにすみます。また、処理ごとに名前を付けられるため、プログラムの役割が分かりやすくなります。

4. サンプルコード

次のコードを見てください。

def show_line():
    print("---------------")


def show_title():
    print("Python Lesson")


show_line()
show_title()
show_line()
show_title()

このコードでは、区切り線を表示する処理と、タイトルを表示する処理をそれぞれ関数にまとめています。同じ処理を何度も使いたいときに、関数が役立つことを確認できます。

5. 実行手順

まず、function.py というファイルを作ります。

touch function.py

function.py をエディターで開き、次のコードを書いて保存します。

def show_line():
    print("---------------")


def show_title():
    print("Python Lesson")


show_line()
show_title()
show_line()
show_title()

保存したら、ターミナルで次のコマンドを実行します。

python3 function.py

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

---------------
Python Lesson
---------------
Python Lesson

6. コードの読み方

  • def show_line(): は、show_line という関数を定義しています。
  • この関数の中では、print("---------------") を実行します。
  • def show_title(): は、show_title という関数を定義しています。
  • この関数の中では、print("Python Lesson") を実行します。
  • show_line() は、定義した show_line 関数を呼び出しています。
  • 呼び出すと、その関数の中の処理が実行されます。
  • show_title() も同じように、show_title 関数の処理を実行します。
  • 同じ関数を何度呼び出しても、定義した内容がそのまま使われます。

7. 初学者がつまずきやすい点

  • 関数は def で定義する
  • 関数名のあとには () を付ける
  • 定義しただけでは関数は実行されない
  • 呼び出してはじめて関数の中の処理が実行される
  • 関数の中の処理はインデントが必要

特に、関数を作っただけで結果が表示されるわけではありません。show_title() のように書いて呼び出す必要があります。

8. よくあるエラー

1つ目は、関数の定義で : を書き忘れた場合です。

SyntaxError: expected ':'

たとえば次のような書き方です。

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

def の行の最後には : が必要です。

2つ目は、関数の中の処理をインデントしていない場合です。

IndentationError: expected an indented block

たとえば次のような書き方です。

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

関数の中に書く処理は、1段下げて書く必要があります。

3つ目は、定義していない関数を呼び出した場合です。

NameError: name 'greet' is not defined

たとえば次のような書き方です。

greet()

greet という関数をまだ定義していないため、Python はその名前を使えません。

9. 練習用コード

次のコードを practice_function.py として保存して実行してください。

def show_message():
    print("start")


show_message()
show_message()

実行したあとで、同じ処理が何回実行されたか確認してください。

余裕があれば、def show_end(): という別の関数を追加して、最後に end を表示してみてください。

10. この回で理解しておくこと

  • 関数は処理をまとめたもの
  • def を使って関数を定義する
  • 関数は呼び出して使う
  • 同じ処理を何度も書かずに再利用できる
  • 関数を使うと処理の役割を分けやすくなる

11. まとめ

今回は、関数を作って処理をまとめる基本を確認しました。関数を使うと、同じ処理を何度も書かずに使い回せます。

def で定義し、関数名に () を付けて呼び出す流れは、今後も何度も使います。まずは、短い処理を関数にまとめて呼び出す形に慣れてください。

12. 次回予告

次回は、引数を使って関数に値を渡す方法を学びます。同じ関数でも、渡す値によって動きを変える基本を確認します。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次