Pythonを学び始めるとすぐに登場する if 文。書き方は簡単に見えても、いざ複雑な処理を書こうとすると「あれ、こういう条件ってどう書くんだっけ…?」と手が止まる瞬間が訪れます。
実は、Pythonで使う条件式の7〜8割はたった数種類のパターンでカバーできます。比較演算子、in、and / or / not。この基本セットを押さえれば、どんなロジックも臆せず書けるようになり、コードレビューでも自信を持って説明できる自分に出会えます✨
条件式とは、「条件が満たされていれば True、満たされていなければ False」を返す式のこと。Pythonではこの True / False を持つ型を「ブール型(bool / 論理型)」と呼びます。
if 文は「条件式が True のときだけ次のブロックを実行してね」という命令。だから、条件式の書き方を知れば知るほど、プログラムで表現できる「判断」の幅が一気に広がっていくわけです🚀
「同じかどうか」は = 1つではなく、== (イコール2つ)で表します。= 1つは代入、== は比較、と覚えておきましょう。
x = 10
result = (x == 10)
print(result) # True
x = 11
print(x == 10) # False
数値だけでなく、文字列やリストでも同じように使えます。
x = "apple"
print(x == "apple") # True
print(x == "a") # False(大文字小文字含めて完全一致が必要)
print([1, 2, 3] == [1, 2, 3]) # True
print([1, 2, 3] == [1, 2, 4]) # False
逆に「同じではない」と書きたいときは、ビックリマーク(エクスクラメーション)と = を組み合わせた != を使います。
print(10 != 11) # True
print(10 != 10) # False
数値の大小は山括弧で表現します。覚えるのは4種類だけです。
a >= b:a は b 以上か(≧)a > b:a は b より大きいか(>)a <= b:a は b 以下か(≦)a < b:a は b 未満か(<)a = 20
b = 20
print(a >= b) # True(同じでもOK)
print(a > b) # False(より大きい必要あり)
print(a < b) # False
print(a <= b) # True
「以上・以下」と「より大きい・未満」の境目は意外とミスしやすいポイント。等号を含むかどうかを意識すると、バグが激減します💡
「ある値が文字列やリストの中に含まれているか」を判定したいときは in を使います。直感的で読みやすく、Python独特の書き味が気持ちいい構文です。
x = "a"
print(x in "apple") # True
x = "A" # 大文字
print(x in "apple") # False(大文字小文字は区別される)
fruits = ["apple", "banana"]
x = "apple"
print(x in fruits) # True
x = "orange"
print(x in fruits) # False
「含まれていない」を判定したいときは not in と書けばOK。たとえば "orange" not in fruits は True になります。
「年齢が20歳以上で、かつ女性」のように複数の条件を組み合わせたいときは and と or の出番です。
age = 22
gender = "女性"
result = (age >= 20) and (gender == "女性")
print(result) # True
age = 19
result = (age >= 20) and (gender == "女性")
print(result) # False(年齢条件を満たさない)
「かつ」と訳して読むと、自然と頭に入ります。両方の条件が True でなければ全体も True になりません。
age = 19
gender = "女性"
result = (age >= 20) or (gender == "女性")
print(result) # True(女性条件で True)
こちらは「または」と訳すと分かりやすい構文。片方だけでも条件が満たされていれば全体は True です。両方とも False のときだけ全体が False になります。
複数条件を書くとき、(age >= 20) and (gender == "女性") のようにカッコで囲むと意図が明確になり、レビュアーにも親切です。慣れないうちは積極的にカッコを使う方針がおすすめ👍
「○○ではないとき」と書きたいときは not を使います。条件式の True と False をひっくり返してくれる、とても素直な演算子です。
age = 30
result = not (age >= 20)
print(result) # False(中身がTrueなのでnotで反転しFalse)
age = 19
result = not (age >= 20)
print(result) # True(中身がFalseなのでnotで反転しTrue)
否定形は読みにくくなりがちなので、「ぱっと見で意味がわかる書き方」を選ぶのがコツ。not (x == 10) よりも x != 10 のほうがスッキリ読めますよね。
条件式は理屈で覚えるよりも、手を動かして「動かしながら確かめる」のが一番。お気に入りの教材と快適な作業環境があれば、Python学習の継続率がグッと上がります。
条件式・if文・ループといった基礎を、図解とサンプルで丁寧に解説してくれる定番の入門書。本稿の内容を体系的に補強したい方にぴったりです。
条件式を実務でどう活かすか、関数やクラスとどう組み合わせるかが学べる一冊。「動くコード」から「読みやすいコード」への橋渡しをしてくれます。
「ファイル名に特定の文字が含まれていたら処理を変える」など、if 文と条件式の使いどころが満載。学んだ知識をすぐ生活に応用したくなる名著です。
静かでスムーズな打鍵感とバックライトで、長時間のコーディングも快適。比較演算子の打ち間違えを減らしたい人にも、しっかりしたキータッチのキーボードはおすすめです。
左にエディタ、右にREPLや解説ページを並べておくと、条件式の挙動を確認しながら学べます。USB-C一本で接続できるモデルなら、ノートPC学習者でもデスク周りがスッキリ整います。
= と == の違いは?= は変数に値を入れる「代入」、== は両辺が等しいかを調べる「比較」です。if x = 10: と書くとPythonでは構文エラーになるので、条件には必ず ==を使いましょう。
== と is はどう使い分ける?== は「値が等しいか」、is は「同じオブジェクトか(メモリ上の同一性)」を判定します。値の比較なら ==、None との比較などには is None を使うのが定石です。
== は何を比較している?要素の数と並び順、それぞれの値が完全一致しているかを比較します。[1, 2, 3] == [3, 2, 1] は False なので注意してください。
and と or の優先順位はどっちが強い?not > and > or の順で優先されます。混在するときはカッコを付けて意図を明示するのが安全。読みやすさも段違いに良くなります。
もちろんOKです。is_adult = age >= 18 のようにブール値を変数に保存しておくと、コードの意図が明確になり、再利用もしやすくなります✨
Pythonの条件式は、== / != / >= などの比較演算子、in による包含チェック、そして and / or / not による組み合わせ——この3つの柱を押さえれば、業務で出会うほとんどの判断ロジックを表現できます。
大切なのは、頭の中だけで完結させず実際にコードを動かして、True / False がどう変化するかを目で確かめること。動画やサンプルを見ながら、自分の手元で何度も書き換えていけば、条件式は自然と「呼吸するように使える道具」になります。
お気に入りの入門書と快適な作業環境を揃えて、今日からあなたの if 文をもっと自由に、もっと表現力豊かに進化させていきましょう🚀