Site icon imageTomoMemo.dev

Memo on programming. Provided by Tomo with passion.

Pythonの基本構文「条件分岐」

Icon in a callout block
Python 100Days Challenge Day6

ソフトウェアエンジニアとして開発をする以上、一番書くであろう条件式についてまとめる。

そしてコーディングにおける慣習についてもシェア。

概要:条件分岐の基本構文

条件分岐は、プログラムが特定の条件に応じて異なる処理を実行するための構文。

Pythonではif, elif, elseを使う。else ifではなく、elif

if 条件1:
   # 条件1がTrueの場合に実行されるコード
elif 条件2:
   # 条件2がTrueの場合に実行されるコード(条件1はFalse)
else:
   # 条件1,条件2どちらもFalseの場合に実行されるコード

実際に条件分岐を書く

値を定義して合計金額を出力する関数を書いてみる。

書くコード

  • 商品の価格と数量に基づいて合計金額を計算する
  • 特定条件に基づいて割引を適用する
    • 100個以上の購入なら20%off
    • 50個以上の購入なら10%off
    • 20個以上の購入なら5%off
    • 上記以外は割引無し
  • 合計金額 = 金額 x 数量 x 割引適用
  • バリデーションと出力を実装
    • 価格と数量が正の値であることを確認
    • 合計金額を計算してその結果を表示
      • 入力値の出力とバリデーションを条件で分岐させる
        • True = 正しい値で入力してね
        • False = 合計金額は¥nnnです
def calculate_total_price(price, quantity):
    if quantity >= 100:
        discount = 0.20 # 20%割引
    elif quantity >= 50:
        discount = 0.10 # 10%割引
    elif quantity >= 20:
        discount = 0.05 # 5%割引
    else:        
        discount = 0.00 # 割引無し
        
    total_price = price * quantity * (1 - discount)
    return

def main():
    # 固定値を定義してあらかじめ入力値を指定する
    price = 150.0
    quantity = 60
    
    if price 0 or quantity < 0:
        print("価格と数量は正しい値で入力してください。") # マイナス入力時にバリデーションが適用される
    else:
        total_price = calculate_total_price(price, quantity)
        print(f"合計金額は{total_price:}円です。")

if __name__ == "__main__":
    main()
    
> 合計金額は8100.0円です。

エントリーポイントとして機能するif __name__ == “__main__”: 

  • エントリーポイント:ソースコードが実行される開始点のこと
  • Pythonではスクリプトが実行されると特別な変数__name__が設定される
  • スクリプトが直接実行される場合、__name__変数は__main__に設定される
  • __name__変数はメソッドや定数、ファイルを指定することもあるらしい
    • 今回は関数
  • スクリプトが直接実行されたときのみ
  • 他スクリプトからインポートされた場合、このブロックのコードは実行されない

mainという名前の由来

Pythonに限らず多くのプログラミング言語で一般的に使われる関数名で、プログラムのエントリーポイントを示すことが多い。

これは慣習として理解しておく。

あとがき

Pythonはphpよりもコード自体が読みやすい印象。

Memo on programming by Tomo.

Powered by Tomo with passion.