\ ポイント最大11倍! /

【Python】if 文の基礎的な書き方を解説

  • Python の if 文の書き方が知りたい!
  • ワンライナーで書くにはどうやったらいい?

このような疑問にお答えします。

if文はプログラムの条件分岐を制御するもので、forに並んで最重要概念の一つです。

本記事では以下の内容を解説します。

  • if 文の基本的な書き方
  • if 文の応用的な使い方

ごく基本的な事項を中心に解説していきます。

if 文の基本的な書き方

まずはif文の基本から解説します。

  • if のみを使った書き方
  • if と else を使った書き方
  • if, elif, else を使った方法

それぞれ解説していきます。

if のみを使った書き方

ある条件に合致した場合のみ処理を行うには、以下のようにif節を書きます。

number = 5

if number == 5:
    print("number は 5 です。")

ifの後に「条件式」と「コロン(:)」を続けて、条件に合致した場合の処理はインデントを開けて書きます。

if と else を使った書き方

「条件に合致した場合」と「条件に合致しなかった場合」の処理を指定するには、ifelseを併用します。

number = 5

if number == 5:
    print("number は 5 です。")
else:
    print("number は 5 以外です。")

if, elif, else を使った方法

ifに続けてさらに別の条件を続ける場合には、elifを使います。

number = 5

if number == 5:
    print("number は 5 です。")
elif number == 6:
    print("number は 6 です。")

上記の例ではまずnumber5かどうかを判定し、続いてnumber6であるか判定しています。

もし条件をさらに追加したい場合には、elifを増やします。

number = 5

if number == 5:
    print("number は 5 です。")
elif number == 6:
    print("number は 6 です。")
elif number == 7:
    print("number は 7 です。")

最後にどのif, elifにも当てはまらない場合の条件分岐を付け加えたい場合には、最後にelseを書きます。

number = 5

if number == 5:
    print("number は 5 です。")
elif number == 6:
    print("number は 6 です。")
elif number == 7:
    print("number は 7 です。")
else:
    print("number は 5, 6, 7 以外です。")

if 文の応用的な使い方

演算子を使って条件分岐をさせる

if文ではTrueの場合にインデント内が実行されます。

そうすると、条件式に真偽に関する式を入れることで条件分岐させることができます。

例えば次の通り。

is_ok = "OK"

if is_ok == "OK":
   print("OK でした")

これを応用して、以下のような演算子を使って条件分岐させることもできます。

number = 5

if number >= 5:
   print("number は 5 以上の値です。")

演算子には、例えば以下のようなものが使えます。

演算子意味
a == baとbが等しい
a != baとbが等しくない
a < baはbより小さい
a > baはbより大きい
a <= baはb以下
a >= baはb以上
a is baとbは同じオブジェクト
a is not baとbは異なるオブジェクト
演算子とその意味

よりシンプルに if 文を書く方法

より Pythonic な書き方として、以下のようなものがあります。

is_ok = True

if is_ok:
   print("OK です!")

条件式がTrueならif節が実行されます。

反対に、Falseの場合に実行したい場合には以下のようにします。

is_ok = False

if not is_ok:
   print("NG です!")

ifの後にnotを書くことで、否定を表すことを利用しました。

if…in…でリストに要素を含むかどうかを判定

あるリストに特定の要素を含むかどうか判定するにはinを使います。

num_list = [1, 2, 3, 4, 5]

if 1 in num_list:
   print("1 を含みます。")

もちろん、notを使うことで「含まない」ことも表現できます。

num_list = [1, 2, 3, 4, 5]

if 1 not in num_list:
   print("1 を含みません。")

実務でよく使うテクニックなので、覚えておきましょう。

さらに条件を加える

andorを使うことで、より複雑な条件を加えることが可能です。

例えば、次のような形です。

age = 25
has_license = True

if age >= 18 and has_license:
    print("You can drive.")
else:
    print("You cannot drive.")

a and bとした場合には、abTrueの場合にif節内が実行されます。

今回の場合ではage25なのでTruehas_licenseTrueなので、if節内が実行されます。

また、orを使った例もご紹介します。

temperature = 30
is_raining = False

if temperature > 25 or is_raining:
    print("Let's use the air conditioner.")
else:
    print("We don't need air conditioning.")

a or bとすると、abのいずれか、またはどちらもTrueの場合にif節内が実行されます。

上記の例では、「気温が25度を超えている」か「雨が降っている」のどちらか一方でもTrueならif節内が実行されます。

今回は気温が25度以上なので、雨が降っていなくてもif節内が実行されることになります。

三項演算子を使ってワンライナーで条件分岐する

三項演算子を使えばif文を一行で表現できます。

三項演算子の基本: 値の切り替え

書き方は以下の通りです。

"True の場合の値" if 条件式 else "False の場合の値"

これではちょっと分かりづらいと思うので、実際のコード例で確認しましょう。

# 比較対象の数字を定義
a = 10
b = 20

# 三項演算子で大きい方を取得
max_value = a if a > b else b
print(max_value)  # 20が出力される

上記の場合には単純に「大きい方の数字」を出力していますが、以下のように文字列を出力することもできます。

# 比較対象の数字を定義
a = 10
b = 20

# 三項演算子で大きい方を取得
which_value = "10が選択されました" if a > b else "20が選択されました"
print(which_value)  # "20が選択されました" が出力される

三項演算子の基本: 式の切り替え

三項演算子の戻り値として「値」の代わりに「式そのもの」を指定できます。

日本語で表現すると、以下のようになります。

"True の場合の式" if 条件式 else "False の場合の式"

このようにすることで、条件式の結果次第で計算式を変えることができます。

以下の例では、大きい方の数字を二倍した値が取得されます。

# 比較対象の数字を定義
a = 10
b = 20

# 三項演算子で大きい方を取得
max_value_double = a * 2 if a > b else b * 2
print(max_value_double)  # 40が出力される

if 文を使いこなして Python を自在に操ろう!

if文は Python を学習する上で最重要概念です。

今回の基本的な事項をマスターして、Python をストレスなく書けるようにしていきましょう!

ご不明点がありましたら、下のコメント欄よりお気軽にどうぞ。

また、本ブログの Python 関連記事もぜひ覗いてみてください。

» 参考:CFXLOG – Python に関する記事一覧

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

karo@プログラマのアバター karo@プログラマ プログラマ

「書くことで人の役にたつ」をモットーに活動中。
本職はプログラマで、Python(Django)が得意。最近ではフロント側の技術に触れる機会も増えてきました。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)