【保存版】Pythonコードを劇的に美しくするテクニック10選:脱・初心者への道

この記事は約4分で読めます。

Pythonには、単に「プログラムが動く」だけでなく、Pythonの設計思想に沿った「明快で、簡潔で、読みやすい」コードの書き方を指す「Pythonic(パイソニック)という言葉があります。

Pythonの哲学(The Zen of Python)では、「読みやすさは大切だ(Readability counts.)」と説かれています。誰が見ても意図がすぐに伝わる洗練された書き方をマスターすることは、バグを減らし、開発効率を上げるための第一歩です。

今回は、実務ですぐに使えるPythonicなコーディングテクニック10選を、具体的なコード例とともに紹介します

1. 三項演算子(条件式)

if-else文を1行で記述する方法です。冒頭で挙げられた「xxxxx if yes else no」の形式ですね。

# 通常の書き方
score = 85
if score >= 80:
    result = "Pass"
else:
    result = "Fail"

# Pythonicな書き方
result = "Pass" if score >= 80 else "Fail"

2. リスト内包表記

リストの生成とループを1行にまとめます。

# 通常の書き方
squares = []
for i in range(10):
    squares.append(i**2)

# Pythonicな書き方
squares = [i**2 for i in range(10)]

3. zip関数による複数リストの同時ループ

複数のリストを同時に回したい時、インデックス(i)を使う必要はありません。

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]

for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

4. enumerate関数でインデックスを取得

ループの中で「今何番目か」を知りたい時に便利です。

colors = ["red", "blue", "green"]

for i, color in enumerate(colors):
    print(f"No.{i}: {color}")

5. アンパックによる変数の入れ替え

一時的な変数(temp)を使わずに、1行で値を入れ替えられます。

a, b = 10, 20
# 値を入れ替え
a, b = b, a

6. get()メソッドによる辞書の安全な値取得

存在しないキーを指定してもエラー(KeyError)にならず、デフォルト値を返せます。

user_info = {"name": "Taro"}

# キーがない場合に "Unknown" を返す
age = user_info.get("age", "Unknown")

7. f-strings(フォーマット済み文字列リテラル)

文字列の中に変数を埋め込む最も直感的で高速な方法です。

name = "Python"
version = 3.12
print(f"Welcome to {name} {version}!")

8. join()によるリストの結合

文字列のリストを一つの文字列に繋げる際、+で連結するより効率的です。

words = ["Python", "is", "awesome"]
sentence = " ".join(words)  # "Python is awesome"

9. アンダーバーによる大きな数値の可読性アップ

桁数の多い数値は、_(アンダースコア)で区切ることができます。

# 10億
large_number = 1_000_000_000
print(large_number) # 出力は 1000000000

10. with構文によるファイル操作

ファイルのクローズ処理(f.close())を自動で行ってくれるため、書き忘れを防げます。

with open("test.txt", "r") as f:
    data = f.read()
# ブロックを抜けると自動でクローズされる

まとめ:綺麗なコードは効率を生む!!

Pythonのテクニックを駆使することで、コードの行数は減り、プログラムの意図はより明確になります。「Pythonic」なコードを目指して、まずは一つずつ自分のプロジェクトに取り入れてみてください。

コメント

タイトルとURLをコピーしました