
【Python入門】6章で学ぶ内容
これまで、if文やfor文、while文、そしてpass文を通じて、Pythonにおける条件分岐や繰り返し処理の基礎を学びました。これらの基本操作を習得することで、プログラムの制御フローを自在に扱うスキルが身につきました。
6章では、これまでの学習内容を踏まえて、頻繁に利用する処理を効率的に再利用できる「関数」について学びます。関数は、コードの重複を減らし、プログラムの構造を整理して読みやすくするための強力なツールです。さらに、関数の引数の扱い方や変数のスコープ(有効範囲)についても理解することで、より安全で管理しやすいコードを書くための基盤が築かれます。
以下の表は、6章で学ぶ主要な内容とその概要をまとめたものです。
項目 | 内容の概要 |
---|---|
関数の定義方法 | コードの一部を独立したブロックとして定義し、再利用性と可読性を向上させる。 |
関数の引数の扱い方 | 引数を通じて外部からデータを受け取り、関数内部で柔軟な処理を実現する。 |
変数のスコープ | グローバル変数とローカル変数の違いを理解し、意図しない変数の衝突や変更を防ぐ。 |

1.関数の定義方法
関数は、def
キーワードを使って定義し、名前、引数、そして関数本体を持ちます。関数の定義により、特定の機能をひとまとめにして再利用することができます。
【基本構文】
def 関数名(引数1, 引数2, ...):
文1
文2
# 必要に応じて return 文で値を返す
解説
def
は関数定義の開始を示し、その後に関数名と丸括弧内に引数を記述します。- コロン(:)の後はインデントされ、関数本体が記述されます。
- 関数本体では、必要に応じて
return
文で結果を返すことができます。
2.関数の引数の扱い方
関数に引数を渡すことで、外部からデータを受け取り、関数内部でそのデータに基づいた処理を行うことができます。引数は必須引数、デフォルト引数、可変長引数など、さまざまな種類があります。
【主な引数の種類と構文】
引数の種類 | 記述例 | 説明 |
---|---|---|
必須引数 | def greet(name): | 呼び出し時に必ず値を渡さなければならない引数 |
デフォルト引数 | def greet(name, msg="Hello"): | 引数にデフォルト値を設定し、呼び出し時に省略可能 |
可変長引数 | def sum_all(*numbers): | 複数の引数をタプルとして受け取る(個数が決まっていない場合に有用) |
キーワード可変長引数 | def display_info(**info): | 複数のキーワード引数を辞書として受け取る。 |
解説
- これらの引数を使い分けることで、関数をより柔軟に設計できます。
- 例えば、ユーザの情報を表示する関数では、固定の引数と可変長引数を組み合わせることで、柔軟な情報表示が可能となります。
3.変数のスコープ
変数のスコープは、その変数が有効な範囲を指し、グローバル変数とローカル変数の2種類に大別されます。
- グローバル変数: 関数の外部で定義された変数は、プログラム全体で有効です。
- ローカル変数: 関数内部で定義された変数は、その関数内でのみ有効です。
【例: グローバル変数とローカル変数】
global_var = "I am global"
def demo_scope():
local_var = "I am local"
print("Inside function:", global_var) # グローバル変数は関数内でも参照可能
print("Inside function:", local_var)
demo_scope()
print("Outside function:", global_var)
# print("Outside function:", local_var) ← エラーになる(ローカル変数は参照できない)
解説
- グローバル変数
global_var
は関数内外で使用できますが、ローカル変数local_var
は関数内に限定され、関数外では参照できません。 - これにより、変数の衝突を防ぎ、プログラムの安定性が向上します。
まとめ
6章では、これまで学んだ基本制御構造を活用し、よく使う処理を関数にまとめる方法について学びます。
- 関数の定義方法:
def
キーワードを用いて機能をまとめ、再利用可能なコードブロックを作成する。 - 引数の扱い: 必須引数、デフォルト引数、可変長引数、キーワード可変長引数などを適切に使い分け、柔軟な関数設計を行う。
- 変数のスコープ: グローバル変数とローカル変数の有効範囲を理解し、予期せぬ変数の衝突を防ぐ。
これらの知識は、コードの再利用性と保守性を高め、プログラム全体の構造を整理するのに不可欠です。6章では、これらの概念を実践的に学びながら、より高度なプログラミング技法へとステップアップしていきましょう。