本記事の構成および論理分析には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.pyfunction.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 Lesson6. コードの読み方
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. 次回予告
次回は、引数を使って関数に値を渡す方法を学びます。同じ関数でも、渡す値によって動きを変える基本を確認します。
復習してみよう
復習したい方は、こちらもあわせてご覧ください。












