このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Python入門】標準コーディングスタイル(PEP8)

標準コーディングスタイル(PEP8)
ここでは、Python の標準コーディングスタイル「PEP8」について、基本的な概念とその重要性、またツールを使った準拠チェックの方法までを順を追って解説します。PEP8 は Python コードの見た目や記述ルールを定めたガイドラインで、コードの可読性や保守性を向上させるために推奨されます。以下で、PEP8 の概要、具体的なルール、チェックツールの利用方法、さらに自動整形ツール autopep8 の使い方について説明します。

プログラムのダウンロード
「ダウンロード」から、サンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。
1.PEP8 とは何か
PEP8(Style Guide for Python Code)は、Python のコードを書く際の標準的なスタイルガイドです。
- 目的: コードの可読性と一貫性を高め、他人との共同作業や保守を容易にする。
- 背景: Python Enhancement Proposal の 1 つで、数多くの PEP の中から採用され、公式なスタイルとして広く受け入れられている。
- 例: インデントは空白4個、変数名はスネークケース、関数名も小文字とアンダースコアで記述するなど。
以下の表に、PEP8 の主なルールの一部を示します。
項目 | 推奨内容 | 備考 |
---|---|---|
インデント | 空白 4 個 | タブと混在しないことが望ましい。 |
変数・関数名 | 小文字とアンダースコア(例: my_function) | 読みやすさの向上 |
行の長さ | 最大 79 文字 | 可読性を考慮して改行すべき。 |
コメント | ブロックコメントは # を使い、空白を入れる。 | インラインコメントも同様にスペースを適切に使用 |
2.PEP8 の重要性とメリット
PEP8 に沿ってコードを書くと、以下のメリットがあります。
- 読みやすさの向上: 一定のルールに従うため、誰が見ても理解しやすいコードになる。
- 保守性の向上: 共同開発の際にコードスタイルが統一され、変更や拡張が容易になる。
- ツールサポート: pycodestyle や autopep8 などのツールで自動チェックおよび整形が可能になる。
3.PEP8 準拠のチェックツール pycodestyle の活用
自分の書いたプログラムが PEP8 に沿っているかどうかを確認するために、pycodestyle というツールが利用できます。
インストール(CPython の場合)
pip install pycodestyle
インストール(Anaconda/Miniconda の場合)
conda install -y pycodestyle
使用方法
コマンドラインから、対象の Python ファイル名を指定して実行します 。
pycodestyle your_script.py
実行例として、PEP8 に沿っていないプログラムファイル(例: pycode-style.py
)をチェックした場合、エラー例として次のようなメッセージが表示されます。
pycode-style.py:2:3: E111 indentation is not a multiple of 4
pycode-style.py:2:16: W292 no newline at end of file
これらのエラーメッセージは、それぞれ「行頭インデントが4の倍数になっていない」、「ファイル末尾に改行がない」といった内容を示しています。PEP8 に沿った修正を行うと、エラーメッセージは表示されなくなります。
4.自動整形ツール autopep8 の利用
PEP8 に準拠するため、コードを手動で修正する代わりに、自動的に整形してくれるツール autopep8 を利用する方法もあります。
インストール(CPython の場合)
pip install autopep8
インストール(Anaconda/Miniconda の場合)
conda install -y autopep8
使用方法
対象のファイルに対して、整形後のコードを直接書き込むには、-i
オプションを付けます。 autopep8 -i your_script.py
これにより、PEP8 に準拠する形に自動整形され、再度 pycodestyle
でチェックした際にエラーが表示されなくなります。
pycodestyleとautopep8の活用実践
pycodestyle の実践
ここでは、PEP8 準拠のチェックと自動修正の手順を実践していきます。PEP8 に沿っていないコード(pycode-style.py)を準備します。内容は以下の通りです。
pycode-style.py
for i in range(3):
print("open")
pycodestyleの実行
このコードは、2 行目の print("open")
のインデントが空白 2 個になっており、PEP8 では推奨される空白 4 個ではないため、コマンドラインで次のようにチェックするとエラーが表示されます。
pycodestyle pycode-style.py
実行結果(エラーメッセージの例)は以下のようになります。
> pycodestyle pycode-style.py
pycode-style.py:2:3: E111 indentation is not a multiple of 4
pycode-style.py:2:16: W292 no newline at end of file
- E111 は「2 行目の 3 桁目(空白の数)が 4 の倍数ではない」ことを意味し、
- W292 は「ファイルの最後に改行がない」ことを示しています。
これらのエラーに沿ってコードを修正すると、正しい形は次のようになります。
for i in range(3):
print("open")
この状態で再度 pycodestyle pycode-style.py
を実行すると、エラーメッセージは表示されず、コードが PEP8 に沿っていることが確認できます。
pycodestyle pycode-style.py
autopep8の実践
また、PEP8 に沿うように自動的にコードを修正してくれるツールとして、autopep8 があります。autopep8 を使えば、手動で修正する代わりに整形されたコードを自動でファイルに書き込むことが可能です。
autopep8 の実行
まず、PEP8 に沿っていないコード(pycode-style.py)を準備します。先ほど修正した内容を元の状態に戻しておきます。以下のように内容を変更します。
for i in range(3):
print("open")
修正したいファイルに対して -i
オプションを付けて実行すると、ファイルが上書き修正されます。
autopep8 -i pycode-style.py
これを実行した後、再度 pycodestyle pycode-style.py
を実行すると、エラーは表示されなくなります。
pycodestyle pycode-style.py
VSCode などのテキストエディタで pycode-style.py
を開き、内容が以下のように修正されているのを確認できます。
for i in range(3):
print("open")
この一連の作業により、PEP8 に基づいたコードスタイルが保たれるため、他の開発者にとっても読みやすく、保守しやすいコードを書くことができます。
まとめ
PEP8 は、Python コードを書く際の標準的なスタイルガイドであり、読みやすさと保守性の向上に寄与します。以下のポイントが重要です。
ポイント | 内容 |
---|---|
コーディングスタイルの意義 | コードの統一された見た目を保つことで、共同開発や保守が容易になる |
PEP8 の主なルール | インデント(空白 4 個)、適切なコメントの記述、適切な命名規則など |
チェックツール pycodestyle | PEP8 準拠のコードかどうかを自動チェックし、エラー箇所と理由を表示 |
自動整形ツール autopep8 | コードを自動的に PEP8 準拠の形に整形するツール。-i オプションを使うとファイルに上書き保存可能 |
これらのツールやルールを活用することで、他の開発者と協力しやすく、より品質の高いプログラムを書くことができるでしょう。まずは自分のコードが PEP8 に沿っているかチェックし、必要に応じて autopep8 などで整形する習慣を身につけることをおすすめします。