コンピュータは、与えられた命令をそのまま実行します。しかし、特定の条件下でのみ命令を実行したい場合、どうすればよいでしょうか。そこで活躍するのが「if文」です。
「if」は英語で「もし〜ならば」という意味です。
コンピュータは「もし〜ならば」の条件に基づいて、特定の動作をします。この考え方を理解することで、プログラムがより柔軟になります。
この記事では、Pythonのif文の基本から、より高度な使い方までを学ぶことができます。
Python if文の基本
「if文」は、条件が満たされているかどうかを確認し、満たされている場合のみ特定の処理を行う命令です。
if文の構造と使い方
基本的な構造は以下のようになります。
if 条件式:
処理
例を見てみましょう。
x = 10
if x > 5:
print("xは5より大きい")
このプログラムでは、xが5より大きい場合、”xは5より大きい”と出力されます。
条件式の基本
条件式は、真か偽かを判断する式です。
「x > 5」のように、比較演算子を使用して条件を設定します。
演算子の種類と使用法
Pythonには様々な演算子があります。以下は主なものです。
等しい
x == y
以上・以下
x >= y
x <= y
より大きい・より小さい
x > y
x < y
これらの演算子を使用して、条件式を組み立てることができます。
複数条件の取り扱い
一つのif文で複数の条件を取り扱いたい場合があります。それには「and」や「or」を使用します。
and演算子での条件結合
「and」はすべての条件が真である場合に真となる演算子です。
x = 10
y = 5
if x > 5 and y < 10:
print("両方の条件が真")
or演算子での条件結合
「or」はいずれかの条件が真である場合に真となる演算子です。
x = 3
y = 12
if x < 5 or y < 10:
print("どちらかの条件が真")
1行でのif文の書き方
Pythonには、if文を1行で書く方法もあります。これにより、コードをシンプルに保つことができます。
1行での基本的な書き方
x = 10
message = "xは5より大きい" if x > 5 else "xは5以下"
print(message)
1行でのelseを使った書き方
x = 4
print("xは5より大きい") if x > 5 else print("xは5以下")
elseによる分岐処理
「else」は、if文の条件が満たされなかった場合の処理を記述するための命令です。
基本的なelseの使い方
x = 4
if x > 5:
print("xは5より大きい")
else:
print("xは5以下")
elseで何もしない場合の書き方
場合によっては、elseの中で特に何も行いたくない場合があります。その際は「pass」を使用します。
x = 10
if x > 5:
print("xは5より大きい")
else:
pass
elseで何もしない意義と活用法
「else」で特に処理を行わない場合、コードの読み手にその意図を明確に伝えることができます。
例えば、将来的に拡張する可能性がある部分や、意図的に何も処理を行わないことを示したい場合などに使用します。
x = 10
if x > 5:
print("xは5より大きい")
else:
# ここに何も書かないと、エラーになる
pass
elifによる分岐処理
「elif」は、if文の条件が満たされなかった場合に、さらに別の条件を設定するための命令です。
基本的なelifの使い方
x = 10
if x > 5:
print("xは5より大きい")
elif x > 3:
print("xは3より大きい")
else:
print("xは3以下")
elifで何もしない場合の書き方
elifの中で特に何も行わない場合は、elseと同様に「pass」を使用します。
x = 10
if x > 5:
print("xは5より大きい")
elif x > 3:
pass
else:
print("xは3以下")
演算子の種類と使用法
Pythonには多くの演算子がありますが、条件判定に使われる基本的なものを中心に見ていきましょう。
等しい、等しくない
Pythonで値が等しいかどうかを判定する場合、==
を使用します。逆に、等しくない場合は !=
を使用します。
x = 5
if x == 5:
print("xは5と等しい")
if x != 10:
print("xは10と等しくない")
大きい、小さい、以上、以下
数値の比較を行う場合、以下の演算子を使用します。
>
: より大きい<
: より小さい>=
: 以上<=
: 以下
y = 7
if y > 5:
print("yは5より大きい")
if y <= 10:
print("yは10以下")
複数条件の組み合わせ: and, or
and
はすべての条件が真の場合に真となる演算子です。一方、or
はいずれかの条件が真の場合に真となります。
x = 10
y = 5
if x > 5 and y < 10:
print("xは5より大きく、yは10より小さい")
if x == 10 or y == 3:
print("xは10、またはyは3")
1行での条件記述
Pythonでは、簡単な条件判定を1行で記述することも可能です。
message = "Hello" if x == 10 else "Goodbye"
print(message) # この場合、"Hello" が出力されます。
何もしない条件: pass
プログラムの中で条件を満たす場合や満たさない場合に何もしない、という場面があります。その場合、pass
を使用します。
if x == 5:
pass
else:
print("xは5ではない")
演算子のまとめ
以下のテーブルは、今まで学んだ基本的な演算子を一覧にしたものです。
演算子 | 説明 |
---|---|
== | 等しい |
!= | 等しくない |
> | より大きい |
< | より小さい |
>= | 以上 |
<= | 以下 |
and | 両方の条件 |
or | いずれかの条件 |
条件判定は、Pythonプログラムにおける基本的な要素の一つです。適切な演算子を使って、意図した通りの動作をプログラムに実装することが重要です。
条件式の複雑な組み合わせ
条件判定が複雑になる場合もあります。複数の条件を組み合わせたり、入れ子にしたりして、更に高度な判断を行うことが可能です。
複数条件の組み合わせ
age = 25
country = "Japan"
if age > 18 and (country == "Japan" or country == "USA"):
print("年齢は18歳以上で、国籍は日本またはアメリカ")
入れ子の条件式
x = 10
y = 5
if x > 5:
if y < 10:
print("xは5より大きく、yは10より小さい")
このような複雑な条件を効果的に利用することで、プログラムの動作をより精緻にコントロールすることができます。
elseを使った条件分岐
Pythonでは、if
文と一緒にelse
を使うことで、条件を満たす場合と満たさない場合の2つのケースで異なる動作をさせることができます。
elseを使った基本的な例
z = 20
if z == 10:
print("zは10")
else:
print("zは10ではない")
else ifの略であるelifを使った例
score = 85
if score >= 90:
print("Aランク")
elif score >= 70:
print("Bランク")
else:
print("Cランク以下")
elif
を使うことで、3つ以上の条件を順番に評価することができます。これにより、より詳細な分岐を実現することが可能です。
まとめ
Pythonの if
文は、条件に基づいてプログラムの動作を変える基本的な構造です。
条件式、演算子、複数条件の組み合わせ、and
やor
などのキーワード、そしてelse
による分岐など、さまざまな要素をうまく組み合わせることで、豊富なプログラミングの表現が可能になります。