【Python】三項演算子(条件式)の使い方を初心者向けに徹底解説!if文を1行で書く方法

Python 三項演算子の使い方解説

※このサイトの記事内では広告を掲載している場合があります。

Pythonでプログラムを書いていると、「条件によって変数に入れる値を変えたい」という場面がよくありますよね。そんなときにif文を使うと、たった1つの値を出し分けるだけなのに4行も書くことになり、「ちょっと面倒だな…」と感じたことはありませんか?

そんなときに便利なのが三項演算子(条件式)です。三項演算子を使うと、if-else文を1行でスッキリ書くことができます。この記事では、三項演算子の基本構文から、ネストのさせ方、リスト内包表記やf文字列と組み合わせる実用テクニック、そして使うときの注意点までを、初心者の方にも分かりやすく丁寧に解説していきます。

三項演算子(条件式)とは?

三項演算子とは、条件によって2つの値のうちどちらかを返す書き方のことです。Pythonの公式ドキュメントでは「条件式(conditional expression)」と呼ばれています。多くのプログラミング言語には 条件 ? 値1 : 値2 という記号を使った三項演算子がありますが、Pythonでは ifelse という英単語を使って書くのが特徴です。読み下すように自然に書けるので、慣れるととても便利ですよ。

三項演算子の基本の書き方

Pythonの三項演算子は、次のような構文で書きます。「条件が真のときは値1を、そうでなければ値2を返す」という意味です。

# 三項演算子の基本構文
# 値1 if 条件 else 値2

score = 80
result = "合格" if score >= 60 else "不合格"
print(result)
# 実行結果: 合格

左から「"合格"(条件が真のときの値)」「if score >= 60(条件)」「else "不合格"(条件が偽のときの値)」という順番です。英語の文章のように「合格、ただし60点以上ならね、そうでなければ不合格」と読むとイメージしやすいかもしれません。

if-else文との違いを比較してみよう

同じ処理を通常のif-else文で書いた場合と比べてみましょう。三項演算子を使うと、4行の処理が1行にまとまることが分かります。

score = 50

# 通常のif-else文(4行)
if score >= 60:
    result = "合格"
else:
    result = "不合格"

# 三項演算子(1行)
result = "合格" if score >= 60 else "不合格"
print(result)
# 実行結果: 不合格

このように、「条件に応じて変数へ代入する値を切り替えるだけ」のシンプルな処理であれば、三項演算子のほうがコードが短く読みやすくなります。条件分岐そのものの基本をおさらいしたい方は、if文と演算子(not, in)の使い方を解説した記事もあわせて読んでみてください。

数値の大小を比較して使ってみる

三項演算子は、2つの数値のうち大きいほう(または小さいほう)を取り出すといった処理にも使えます。

a = 10
b = 25
big = a if a > b else b
print(big)
# 実行結果: 25

a > b が偽(10は25より大きくない)なので、else 側の b が代入されます。組み込みの max() 関数でも同じことができますが、条件を自由に書けるのが三項演算子の強みです。

三項演算子をネストして使う(elif相当)

三項演算子は入れ子(ネスト)にすることもできます。これによって、if-elif-else のような3つ以上の分岐を1行で表現できます。

score = 75
grade = "A" if score >= 80 else "B" if score >= 60 else "C"
print(grade)
# 実行結果: B

左から順に条件が判定され、最初に真になった値が返されます。ただし、ネストを深くしすぎるとかえって読みにくくなるので、2段までを目安にするのがおすすめです。

三項演算子の実用的な使い方

リスト内包表記と組み合わせる

三項演算子はリスト内包表記の中でもよく使われます。リストの各要素を条件によって変換したいときにとても便利です。

nums = [1, 2, 3, 4, 5]
labels = ["偶数" if n % 2 == 0 else "奇数" for n in nums]
print(labels)
# 実行結果: ['奇数', '偶数', '奇数', '偶数', '奇数']

リスト内包表記そのものの書き方を詳しく知りたい方は、リスト内包表記の使い方を解説した記事を参考にしてください。内包表記と三項演算子を組み合わせられるようになると、データ処理のコードがぐっと短く書けるようになりますよ。

f文字列の中で使う

三項演算子はf文字列(f-string)の波括弧の中でも使えます。表示するメッセージを条件によって切り替えたいときに役立ちます。

count = 0
msg = f"通知が{count}件{'あります' if count > 0 else 'ありません'}"
print(msg)
# 実行結果: 通知が0件ありません

f文字列の中で三項演算子を使うときは、内側の文字列のクォートと外側のクォートが衝突しないように注意しましょう。f文字列の基本的な使い方については、f文字列(f-string)の使い方を徹底解説した記事で詳しく紹介しています。

三項演算子を使うときの注意点

便利な三項演算子ですが、使いどころを間違えるとかえってコードが読みにくくなります。次の点に気をつけましょう。

  • 複雑な処理には使わない:条件や値が長くなる場合は、素直に通常のif-else文で書いたほうが読みやすくなります。
  • ネストは深くしすぎない:三項演算子を何段も重ねると、どこで何を判定しているのか分かりにくくなります。
  • あくまで「値を返す」ための構文:三項演算子は値を返す式なので、ループや関数呼び出しなどの「処理」を分岐させたい場合は通常のif文を使いましょう。

もっと効率的にPythonを学びたい人へ

三項演算子のような細かい文法は、実際に手を動かしてコードを書きながら覚えるのが一番の近道です。とはいえ、独学だと「この書き方で合っているのかな?」「エラーの原因が分からない…」と手が止まってしまうこともありますよね。

もし本気でPythonを身につけて、未経験からエンジニア転職まで目指したいなら、マンツーマン指導が受けられるプログラミングスクールを活用するのも一つの手です。プロの講師に直接質問できる環境があると、つまずきをすぐに解消できて学習効率が大きく上がります。無料カウンセリングを実施しているスクールも多いので、まずは話を聞いてみて、自分に合うか確かめてみるとよいでしょう。

※本記事には広告(アフィリエイトリンク)を含みます。

Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】

まとめ

今回は、Pythonの三項演算子(条件式)について解説しました。最後に要点を振り返っておきましょう。

  • 三項演算子は 値1 if 条件 else 値2 の形で書き、if-else文を1行にまとめられる。
  • 数値の大小比較や、条件によって変数の値を出し分ける処理に便利。
  • ネストすれば elif 相当の3分岐も書けるが、深くしすぎないこと。
  • リスト内包表記やf文字列の中でも活用でき、コードを短くスッキリ書ける。
  • 複雑な処理には無理に使わず、通常のif文と使い分けるのがコツ。

三項演算子を使いこなせるようになると、Pythonのコードがぐっと洗練されます。ぜひ実際に手を動かして試してみてくださいね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA