【Python入門】if文の基本から実務で役立つ応用テクニックまで徹底解説

【作業自動化】Python
スポンサーリンク

Pythonの条件分岐は「読みやすさ」を最優先に設計されています。

VBAやGASとの最大の違いは、End If や波括弧{ } を使わず、インデント(字下げ)で処理ブロックを管理する点です。

それでは、基本の書き方から順を追って確認していきましょう。

【作業自動化】Pythonの記事を見る 

基本構造とインデントのルール

Pythonでは、条件が成立した時に実行するコードの先頭に、一定幅のスペース(一般的には半角スペース4つ)を挿入してインデントを設定します。 

score = 85

if score >= 90:
    print("最高評価です")
    # ここもifの中
elif score >= 70:
    print("合格です")
    # ここもelifの中
else:
    print("不合格です")
    # ここもelseの中
print("判定終了") # インデントがないので、if文の外(必ず実行される)

if、elif、else の行末には必ずコロン(:)が必要です。

論理演算子の違い(VBA・GAS比較)

記号ではなく「英単語」をそのまま使用する点がPythonの大きな特徴となります。

他言語からの移行時は記法ミスにご注意ください。

種類PythonVBAGAS (JS)
かつandAnd&&
またはorOr`
否定notNot!

使用例:

age = 25
is_member = True

if age >= 20 and is_member:
    print("会員かつ成人です")

Pythonならではの3つの書き方

実務で頻出する、Python特有の効率的な記述方法を3つご紹介します。 

① 値の存在チェック(in演算子) 

リストや文字列の中に特定の値が存在するかを直接判定できます。

ループ処理で要素を1つずつチェックさせる必要がありません。 

# リストの場合
team = ["Tanaka", "Suzuki", "Sato"]
if "Suzuki" in team:
    print("鈴木さんが在籍しています")

# 文字列の場合
log_message = "Error: Connection failed"
if "Error" in log_message:
    print("エラーログが検出されました")

② オブジェクトの真偽値判定(Truthiness) 

Pythonでは、「空のリスト」「空の文字列」「数値の0」「None」は、条件式において自動的にFalseとして扱われます。

この仕様を活用すると、要素数チェックなどの記述が非常にシンプルになります。

data_list = []

# 「リストにデータが存在する場合」の書き方
if data_list:
    print(f"データが{len(data_list)}件あります")
else:
    print("データは存在しません")

③ 1行で完結する条件分岐(三項演算子) 

変数への代入など、シンプルな条件分岐であれば1行にまとめて記述できます。 

# 点数を設定
score = 75

# 三項演算子(条件付き式)による判定
# 構文: 真の値 if 条件 else 偽の値
status = "合格" if score >= 70 else "不合格"
print(f"得点: {score}点 -> 判定: {status}")

多分岐処理の記法(match文)

Python 3.10以降では、VBAのSelect Caseや他言語のswitch文に相当するmatch文がサポートされました。

特定の値に応じた多分岐をすっきり整理できます。

role = "manager"

match role:
    case "admin":
        print("管理者権限")
    case "manager" | "leader": # パイプ(|)で「または」を表現
        print("承認権限あり")
    case "user":
        print("一般ユーザー")
    case _: # ワイルドカード(VBAのCase Else)
        print("権限なし")

応用:リスト内包表記での条件フィルタリング

「リストから条件に合致する要素のみを抽出する」という処理は、通常のfor文とif文を組み合わせるよりも、リスト内包表記を用いることで1行で記述できます。さらに通常の記述より処理も高速になります。

numbers = [1, 2, 3, 4, 5, 6]

# 通常の書き方
evens = []
for n in numbers:
    if n % 2 == 0:
        evens.append(n)
print(evens) # 結果: [2, 4, 6]

# リスト内包表記
# [式 for 変数 in リスト if 条件]
evens_smart = [n for n in numbers if n % 2 == 0]
print(evens_smart) # 結果: [2, 4, 6]

Pythonの条件分岐は、単なる分岐処理にとどまらず、in演算子やmatch文、リスト内包表記と組み合わせることで、コード全体の可読性と開発効率を大きく向上させてくれます。
日々の業務ツール作成にぜひ取り入れてみてください!

【作業自動化】Pythonの記事を見る 


Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【作業自動化】PythonITスキル
スポンサーリンク
ぐーをフォローする

コメント

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