「同じことを何度も書いてしまっていませんか?」「もっと短く書ける気がするけど、どう直せばいいのかわからない…」そんなモヤモヤは、Pythonの“冗長性の排除”を意識することで解消できます。
冗長性(じょうちょうせい)とは、意味の重複やムダな書き方のこと。放っておくとコードが読みにくくなり、修正もしづらく、思わぬバグの温床にもなります。このセクションでは、Python初心者・IT初心者の方にもわかりやすく、冗長性を減らして読みやすいコードにする考え方と具体例を学びましょう。
まずは具体例を見て、どこが冗長なのかを体感してみましょう。
次のコードは、商品の価格リストを合計し、税率をかけて最終的な金額を返す関数です。動作はしますが、書き方にムダがあります。
def calculate_total_price(prices, tax_rate):
total = 0
for price in prices:
total = total + price
total_with_tax = total + (total * tax_rate)
return total_with_tax
一見シンプルに見えますが、よく読むと「合計の出し方」と「税金の足し方」に重複表現があります。もしあなたが明日このコードをもう一度読んだら、一瞬「何をしているんだっけ?」と考えてしまうかもしれません。
ここでは、先ほどのコードをPythonらしく短く、そして読みやすく書き直してみます。
短くすることが目的ではなく、意図がまっすぐ伝わるように整えるのがポイントです。
def calculate_total_price(prices, tax_rate):
total = sum(prices) # 合計を出す標準関数を活用
return total * (1 + tax_rate) # 税込金額を一行で計算
どこが良くなったのか、自然な流れで確認しましょう。
まず、合計の計算はPython標準のsum関数に任せています。sumは「合計を求めたい」という意図をそのまま表現できるため、ループを書き回す必要がありません。
読み手は「ここで合計しているんだな」と一瞬で理解できます。次に、税金の加算は「合計に税率をかけて足す」を「合計 × (1 + 税率)」と一行で表しています。中間変数を無理に作らず、計算式の意味がそのまま伝わる形になりました。「短いけど読みやすい」状態を実現できていますね。
実際の現場では、どんなところに冗長さが潜んでいるのでしょうか?
ここでは、日常的に効くチェックポイントを紹介します。難しい専門用語は覚えなくても大丈夫。ムダを見つけて、より素直な表現に置き換える意識を持てば十分です。
ここからは、あなたの手で冗長性を取り除いてみましょう。
次の関数は、割引後の価格を返すコードです。合ってはいますが、少し遠回りな書き方になっています。「もっと直感的に書けないかな?」と考えながら取り組んでみてください。
def calculate_discounted_price(original_price, discount_rate):
discount = original_price * discount_rate
discounted_price = original_price - discount
return discounted_price
冗長さをなくすコツは、「式の意味がそのまま伝わる形」に整えることです。ここでは「元の価格 × (1 − 割引率)」とするのが一番ストレートですね。中間変数を無理に作らず、意図を式に込めてしまいましょう。
def calculate_discounted_price(original_price, discount_rate):
return original_price * (1 - discount_rate)
どうでしょうか。先ほどより短くなり、読む人が「割引後の価格を計算している」ことをすぐに理解できる形になりました。もし割引の計算を別の関数でも使い回すなら、同じ考え方で簡潔な実装が広がっていきます。
冗長性の排除は、Pythonでリーダブルなコード(読みやすいコード)を書くための基本スキルです。ムダなループや不要な中間変数をなくし、sumなどの標準関数や表現力の高い構文を選ぶだけで、可読性と保守性はぐっと上がります。とはいえ、短さだけを追い求める必要はありません。大切なのは「意図がまっすぐ伝わること」。あなたの未来の自分やチームメイトが読みやすいかどうか、いつも少しだけ想像して書いてみましょう。今日から小さな冗長さを一つずつ減らすだけで、コードは確実に洗練されていきます。