[Python] コーディング規約(PEP8)、認定試験

Pythonプログラミングにおいて標準的なコーディング規約が定められているPEP8について簡単にまとめます。

PEP8のガイドラインを把握したうえでコーディングすることで、コードの可読性と一貫性を高めることができます。もし参画しているプロジェクトで特有のコーディング規約がなければ、PEP8に従いコーディングを行うとよいです。

PEP 8

コーディング規約

インデント

インデントにはスペース4つを使用する。
  • 既存のコードがタブで使用されていた場合、コードの一貫性を図るためにタブの使用も可能とする。しかしタブとスペースが混在してはいけない。

行の長さ

1行の長さは79文字までに収める。

PEP 8では、1行あたりの文字数を79文字以内にすることが推奨されています。これにはいくつかの理由があります。

  • 可読性 : 短い行の方が読みやすく、コードの意図を理解しやすい。
  • 端末の制約 : 狭い幅の端末やウィンドウでもコードが途切れずに表示される。
  • バージョン管理の差分表示 : 行が短いと、バージョン管理システムでの変更点が見やすくなる。

もし1行が79文字を超える場合は、次のように改行を使います。

# 方法1: バックスラッシュを使用
total = first_variable + second_variable + third_variable + \
        fourth_variable + fifth_variable + sixth_variable

# 方法2: 括弧内に改行
total = (first_variable + second_variable + third_variable +
         fourth_variable + fifth_variable

空白

空白の使い方を注意することで、コードが見やすくなり、他の人と共同作業する際にもスムーズに進むようになります。具体的な例を以下に示します。

代入演算子(=)、二項演算子(+、-、*、/、など)の両側にスペースを入れる
x = 1
y = 2
sum = x + y
カンマ(,)、コロン(:)、セミコロン(;)の後にはスペースを入れる
if x == 4: print(x, y); x, y = y, x
関数の引数リストの括弧の内側にはスペースを入れない
# よい例
def func(a, b):
    print(a + b)

# 悪い例
def func( a, b ):
    print(a + b)

変数名

変数名の命名はコードの可読性や保守性に大きく影響します。PEP 8のガイドラインに従った変数名の使い方をいくつか紹介します。

小文字とアンダースコアを使用する
my_variable = 10
total_count = 5
意味のある名前を使用する

変数名は、その変数が何を表しているかを明確に示すべきです。短くても意味のある名前を選びましょう。

# 良い例
user_age = 30
product_price = 19.99

# 悪い例
a = 30
p = 19.99
スコープを意識する

関数やメソッド内の変数と、モジュール全体で使う変数の命名には気をつけましょう。関数内の変数は短くても良いですが、グローバル変数は明確に名前を付けるべきです。

# 関数内の変数 (短くてOK)
def calculate_total(items):
    total = 0
    for item in items:
        total += item
    return total

# グローバル変数 (明確に)
GLOBAL_COUNT = 0
避けるべき命名

意味が曖昧だったり、他の部分と紛らわしい名前は避けるべきです。例えば、l(エル)やO(オー)などは数字の1や0と紛らわしいため避けましょう。

# 悪い例 (避けるべき)
l = 1   # 数字の1と混同しやすい
O = 0   # 数字の0と混同しやすい

クラス名

クラス名を適切に命名することで、コードの可読性と理解しやすさが向上し、他の開発者との協力もスムーズになります。クラスの役割を明確にし、一貫したスタイルを維持することが重要です。

キャメルケースを使用する

クラス名はキャメルケース(CamelCase)を使用して命名します。各単語の最初の文字を大文字にし、単語の間にスペースやアンダースコアを入れません。これにより、クラス名が他の識別子と区別されやすくなります。

class MyClass:
    pass

class UserProfile:
    pass
特定の接尾辞や接頭辞

場合によっては、クラス名に特定の接尾辞や接頭辞を付けることもあります。例えば、インターフェースクラスには「I」または「Interface」を付けるなどです。

class IUser:
    pass

class ProductInterface:
    pass

Python 3 エンジニア認定実践試験について

Odyssey CBTにより、認定試験(基礎・データ分析・実践)が配信されています。

https://cbt.odyssey-com.co.jp/pythonic-exam/index.html

中でも「Python 3 エンジニア認定実践試験」は、その名の通り実践的なスキルを問われる内容となっており、開発現場に直結し役立つ内容になっていると思います。今回紹介したPEP 8も試験範囲となっているので参考にしてみてください。

また、筆者はここまで基礎試験、データ分析試験とパスしており、今回「Python3エンジニア認定実践試験」を受験します!!!

無事合格出来たら試験に向けての勉強方法などもまとめていきたいと思います。

コメント

このブログの人気の投稿

docker-compose up で proxyconnect tcp: dial tcp: lookup proxy.example.com: no such host

【Android】Fragmentを使う② - ActivityとFragmentの相互呼び出し -

【Java】ObjectMapperでJSONデータを変数に取り込む