Pythonの条件式を短く書くコツ!複雑な条件を簡潔に記述するテクニック
生徒
「先生、Pythonで条件分岐を書くときに、長くなって読みにくくなることがあるんですが、もっと短く書く方法はありますか?」
先生
「いい質問ですね。それはPythonの『条件式(じょうけんしき)』を短く書くテクニックを知れば、スッキリしたコードが書けるようになりますよ。」
生徒
「たとえば、複雑な条件がいくつもあるときはどうすればいいんですか?」
先生
「そのときは、条件式の書き方に工夫をすると見やすくて理解しやすいコードになります。今回はその書き方をじっくり解説しますね。」
1. Pythonの「条件式」とは?
Python(パイソン)における「条件式」とは、「もし○○ならこうする」というような判断をするための式のことです。これは現実世界でもよくある考え方です。
たとえば、「もし傘を持っていないなら、傘を持っていく」といった感じです。
Pythonでは、このように書きます:
has_umbrella = False
if not has_umbrella:
print("傘を持っていこう!")
2. if文を1行で書く「条件式(三項演算子)」
条件によって「どちらかを選ぶ」場合、Pythonでは1行で書く方法があります。これを「三項演算子(さんこうえんざんし)」とも呼びます。
形式は次のようになります:
値1 if 条件 else 値2
たとえば、「18歳以上なら入場OK、それ以外はNG」としたい場合:
age = 16
message = "入場OK" if age >= 18 else "入場できません"
print(message)
入場できません
このように、ifとelseを使って1行で条件を処理できます。
3. 複数の条件をスッキリ書く「and」と「or」
条件が2つ以上あるときは、and(アンド)やor(オア)を使うことでスッキリまとめられます。
and:両方の条件が正しいときだけOK
or:どちらかが正しければOK
例:「年齢が20歳以上 かつ 会員登録している」場合だけ利用できる:
age = 21
is_member = True
if age >= 20 and is_member:
print("サービスを利用できます")
else:
print("利用できません")
サービスを利用できます
このように複数の条件を1行にまとめることで、コードが読みやすくなります。
4. 同じ値との比較が続くときは「in」を使おう
たとえば、「Aさん・Bさん・CさんのどれかならOK」としたいとき、orを何度も使うより、inを使ったほうが短く書けます。
name = "Bさん"
if name in ["Aさん", "Bさん", "Cさん"]:
print("対象者です")
対象者です
inは「〜の中にあるか?」という意味です。日本語でも「それ、リストに入ってる?」と聞きますよね。
5. 条件が複雑なときは関数化して読みやすく
条件がたくさんあって1行におさめにくいときは、関数(かんすう)を使って「名前をつけてしまう」と分かりやすくなります。
def is_eligible(age, has_id, is_member):
return age >= 18 and has_id and is_member
if is_eligible(20, True, True):
print("入場できます")
入場できます
こうすることで、条件の意味がパッと見てわかるようになり、プログラム全体が読みやすくなります。
6. ネガティブな条件は「not」を活用
条件に「〜でない」といった否定が含まれるときは、notを使うことでシンプルになります。
たとえば、「ログインしていないならログイン画面へ」などです。
is_logged_in = False
if not is_logged_in:
print("ログインしてください")
ログインしてください
notは「〜ではない」という意味を持ち、True(真)とFalse(偽)をひっくり返します。
7. 0や空文字などを使った「真偽判定」も活用
Pythonでは、数字の0や空文字列("")、空のリストなどはFalseとして扱われます。
これを使えば、値があるかどうかをスマートに判定できます。
email = ""
if not email:
print("メールアドレスを入力してください")
メールアドレスを入力してください
このように、わざわざemail == ""と書かなくてもnot emailでチェックできます。
まとめ
Pythonのじょうけんしきは、ふくざつなコードをすっきり整理して読みやすくするためにとても大切な要素です。とくに、ひとつの条件だけではなく、みじかい条件式、三項演算子、andやorを使った複数条件、値の一覧をまとめて判定できるinの使い方などをしっかり身につけることで、Pythonのコードはより直感的で自然な読み心地になります。さらに、条件が増えて読みづらくなってきたら関数化するという考え方は、実際の大規模なプログラムでもよく使われる大事なテクニックです。 また、Pythonは0や空のリスト、空文字を偽として扱う「真偽判定」のけんちょな特徴があるため、notを上手に活用することで「値が存在するかどうか」を短く書ける点も見逃せません。Pythonらしい書き方を身につけるほど、コード全体のながれが理解しやすくなり、エラーの発生率もへらすことができます。 こうした条件式の基本から応用までを学んでおくと、日常的なプログラミングでも自然にスマートな書き方ができるようになります。じっさいの開発現場でも、短く美しいコードは評価されやすく、読み手にも優しい構造になります。下の例では、ふくざつな条件を関数化し、三項演算子とinを使って必要な処理を整理しています。
サンプルプログラム
def can_login(age, is_active, country):
return age >= 18 and is_active and country in ["日本", "アメリカ", "カナダ"]
user_age = 20
user_active = True
user_country = "日本"
message = "ログインできます" if can_login(user_age, user_active, user_country) else "条件を満たしていません"
print(message)
こうしたPythonの条件式の特徴をふりかえることで、「読みやすさ」と「分かりやすさ」を重視したコーディングの姿勢が自然に身についていきます。とくに、三項演算子やin、notは、知っているだけでコードの質が大きく変わる便利な書き方です。日々の練習の中で、少しずつ使いながら身につけていくことがとても重要です。Pythonのじょうけんしきは、プログラミングの土台であり、習得することでその後の学習がずっと楽になります。
生徒
「先生、きょう学んだじょうけんしきの書き方って、実際のプログラムでもよく使われるんですね。」
先生
「そうですよ。特に三項演算子やinは、短いのに意味がとても分かりやすいので、読み手にもやさしい書き方なんです。」
生徒
「たしかに in を使うと、いくつも比較を書くよりすっきりして読みやすかったです。」
先生
「その調子です。読みやすいコードを書く力は、上級者ほど大事にしているスキルです。条件がふくざつなら関数化、否定ならnot、選択なら三項演算子といったように、状況に合わせて書き分けられるようにしましょう。」
生徒
「なるほど……!ただ動くだけじゃなくて、きれいに書くことが大事なんですね。」
先生
「その通りです。きょう学んだテクニックを使えば、Pythonの条件式がもっと自然に書けるようになりますよ。」