こんにちは!
Pythonの学習、楽しんでいますか?
自分で書いたコードが思い通りに動くと、とても嬉しいですよね。
でも、数週間後に自分のコードを見返して「…これ、どういう意味だっけ?」と頭を抱えた経験はありませんか?

Pythonにも少し慣れてきたんですが、この書き方って正しいのかなって気になるようになってきたんです..

わかります~!!
本や職場の先輩のプログラムはとっても読みやすかったり、
動くけど読みにくいんだよな~なんて感じている方は参考にしてみてください!
実は、Pythonには「誰が読んでも分かりやすいコード」を書くための公式なガイドラインがあります。それがPEP 8(ペップエイト)です。
今回は、このPEP 8の中から、初心者のうちから絶対に押さえておきたい10個の重要ポイントを、図解と共にやさしく解説します!
これを実践するだけで、あなたのコードは驚くほど読みやすく、プロっぽい見た目に変身しますよ。
なぜコードをキレイに書く必要があるの?
未来の自分が助かる!
キレイなコードは、未来の自分が読んでもすぐに内容を理解できます。
バグが減る!
整理されたコードは、間違いを見つけやすくなります。
チーム開発で役立つ!
他の人があなたのコードをスムーズに読めるようになります。
それでは、さっそく見ていきましょう!
ルール1:インデントは「スペース4つ」で!
Pythonでは、インデント(字下げ)がプログラムの構造を決める超重要ルールです。
インデントを間違えると、エラーになってしまいます。
ポイント:インデントには、必ず半角スペースを4つ使いましょう。
# 良い例 (スペース4つ)
if a > 10:
print("aは10より大きいです")
# 悪い例 (インデントがバラバラ)
if a > 10:
print("これだとエラーになるかも")
多くのエディタでは、Tabキーを押すと自動でスペース4つが入るように設定できます。
ぜひ設定してみてくださいね。
ルール2:1行は短く、読みやすく
やたらと横に長いコードは、読むのが大変です。
ポイント:1行の長さは、だいたい80文字以内を目安にしましょう。
長くなる場合は、括弧 () やカンマ , の後で改行するとスッキリします。
# 悪い例 (横に長くて見づらい)
total_price = item_price_1 + item_price_2 + item_price_3 + tax_1 + tax_2 + tax_3
# 良い例 (適度に改行されていて見やすい)
total_price = (item_price_1 + item_price_2 + item_price_3 +
tax_1 + tax_2 + tax_3)
ルール3:空白行で「段落」を作る
文章に段落があるように、コードにも適度な区切りが必要です。
ポイント:
- 関数やクラスなど、大きな塊の間は2行空ける。
- クラス内の関数(メソッド)の間は1行空ける。
これだけで、コードのどこからどこまでが一つのまとまりなのかが、パッと見て分かるようになります。
# 良い例
class MyCalculator:
def add(self, a, b):
return a + b
# メソッドの間は1行空ける
def subtract(self, a, b):
return a - b
# クラスと関数の間は2行空ける
def say_hello():
print("Hello!")
ルール4:import文はファイルの先頭に整理整頓
import文は、コードの冒頭にまとめて書くのがルールです。
ポイント:以下の順番でグループ分けすると、さらにGood!
- Pythonに元々入っているもの(os, datetimeなど)
- pipで追加インストールしたもの(numpy, pandasなど)
- 自分で作ったファイル
# 良い例
import os
import sys
import pandas as pd
from my_module import my_function
依存関係が分かりやすくなります。
ルール5:名前には意味を込める(命名規則)
変数名や関数名には、その役割がひと目で分かる名前を付けましょう。
ポイント:Pythonでは、役割ごとに書き方が決まっています。
- クラス名:MyClassのように、各単語の頭を大文字にする(キャメルケース)。
- 変数名・関数名:user_name, calculate_sumのように、小文字とアンダースコアでつなぐ(スネークケース)。
# 良い例
class UserProfile:
def get_user_name(self):
# ...処理...
user_profile = UserProfile()
user_name = user_profile.get_user_name()
ルール6:型ヒントで、中身を分かりやすく
これは少し上級者向けですが、ぜひ知っておきたいテクニックです。
変数や関数が「どんな種類のデータ(型)」を扱うのかを明記することができます。
ポイント:変数名: 型 や -> 戻り値の型 を使って、コードの仕様を明確にする。
# 型ヒントなし
def add_numbers(a, b):
return a + b
# 型ヒントあり (aとbは整数(int)で、戻り値も整数だと分かる!)
def add_numbers(a: int, b: int) -> int:
return a + b
エディタのサポートも受けやすくなり、バグが減るという大きなメリットがあります。
ルール7:エラー処理は具体的に
try-exceptはエラーが起きてもプログラムを止めないための便利な構文ですが、使い方にコツがあります。
ポイント:「なんでもかんでも」エラーをキャッチするexcept:は避ける。
ZeroDivisionError(0除算エラー)など、発生する可能性のあるエラーを具体的に指定しましょう。
予期しないバグまで隠してしまうのを防げます。
# 悪い例 (何のエラーか分からなくなる)
try:
result = 10 / 0
except:
print("何かエラーが起きました")
# 良い例 (0で割った時だけ処理する)
try:
result = 10 / 0
except ZeroDivisionError:
print("0で割ることはできません!")
ルール8:文字列の連結は「f-string」でスマートに
変数と文字列を組み合わせることは多いですよね。
ポイント:+でつなげるより、f-string f"..." を使おう!
f-stringを使うと、コードが短く、直感的に書けます。
name = "Taro"
age = 25
# 昔ながらの方法
message = "私の名前は" + name + "です。年齢は" + str(age) + "歳です。"
# f-stringを使ったスマートな方法 (こっちがオススメ!)
message = f"私の名前は{name}です。年齢は{age}歳です。"
print(message)
# 出力: 私の名前はTaroです。年齢は25歳です。
ルール9:コメントは「なぜ?」を書く
コードにはコメントを書けますが、何でも書けば良いわけではありません。
ポイント:コードを見れば分かること(What)ではなく、なぜこのコードが必要なのか(Why)を書く。
# 悪いコメント (見ればわかる)
# 変数iを1増やす
i = i + 1
# 良いコメント (コードを書いた意図がわかる)
# オフセットを調整するため、インデックスを1から開始させる
i = i + 1
ルール10:一番大事なのは「一貫性」
これまで9つのルールを紹介してきましたが、最も大切なのは「プロジェクト全体でスタイルを統一すること」です。
あるファイルではインデントがスペース2つ、別のファイルでは4つ…という状態だと、非常に読みにくくなります。
チームで開発するときはもちろん、一人で開発するときも、自分だけのルールを決めて、それを守り抜くことが大切です。
まとめ
いかがでしたか?
今回紹介した10のルールを意識するだけで、あなたのPythonコードは劇的に読みやすくなります。
- インデントは「スペース4つ」
- 1行は短く
- 空白行で区切る
- importは整理整頓
- 分かりやすい名前を付ける(命名規則)
- 型ヒントで仕様を明確に
- エラー処理は具体的に
- 文字列は「f-string」で
- コメントは「なぜ?」を書く
- スタイルに「一貫性」を持たせる
最初から全てを完璧にこなすのは難しいかもしれません。
まずはできそうなものから一つずつ取り入れて、キレイなコードを書く習慣を身につけていきましょう!
本ブログ「ゴマフリーダムのPython教室」のトップページへは以下へアクセス!





達人に学ぶDB設計 徹底指南書