みなさんこんにちは、ソラです。
こんな疑問を解消していきます。
本記事の読者理想
- Pythonの条件分岐とは?
- if文の書き方・使い方を知りたい
- Pythonのif文は1行で書けないの?
Pythonで何か開発するとき、必ずと言っていいほど使用頻度が高いif文。
if文を習得すれば、「もし〇〇の場合は△△です」といった条件分岐ができるようになり、開発範囲が広がります。
本記事ではそんなPythonのif文の使い方・書き方についてまとめていきます。
< 【無料】ゼロからはじめるPython入門講座 >
Python if文の基本
if文を用いることでコードの条件分岐ができるようになります。
Pythonのif文の基本文は以下のようになっています。
if 条件1:
条件1に合致した時に行う処理
elif 条件2:
条件2に合致した時に行う処理
else:
条件1・2ともに合致しなかった時に行う処理
なんとなく基本文は理解できるでしょうか?
基本的には「条件を書く → その条件の結果を書く」という形です。
また、Pythonでは条件の後に必ずコロン(:)を付ける必要があります。
付けないで実行するとエラーが起きてしまいますので、付ける癖をつけておきましょう。
条件は比較演算子または論理演算子で指定
Pythonのif文では比較演算子または論理演算子の大きく2つで条件をしていきます。
どちらもよく使用する条件方法です。
演算子自体を覚える必要はありませんが、書き方が少し違ってきますので文法だけでも覚えておきましょう。
比較演算子
比較演算子には以下の種類が存在します。
比較演算子 | 条件内容 |
== | 等しい |
!= | 等しくない |
> | より大きい |
>= | 以上 |
< | より小さい |
<= | 以下 |
どれも比較的使用する条件です。
では実際にサンプルを例に使い方を見ていきましょう。
# ---- リンゴを購入した個数でおつりを表示する ----
price = 1000 # 所持金
apple = 200 # リンゴの価格
while True:
# 個数を入力する
result = input("所持金:1,000円\nリンゴ(1個):200円\n\nリンゴを何個購入しますか?")
try:
# 入力文字が数字の場合
result = int(result)
break
except ValueError:
# 入力文字が数字ではない場合
pass
total_price = apple * result # 合計金額
change = price - total_price # おつり
# 条件文 ここから
if total_price == 1000:
print("所持金をちょうど使い切りました。")
elif total_price < price:
print("おつりは" + str(change) + "円です。")
else:
print("所持金が足りません!")
上記サンプルはキーボードで入力したリンゴの個数によって、おつりの判定を行っています。
注目すべきは19行からです。
今回はif文を使用して以下のような条件文を書きました。
if 合計金額が所持金と同じの場合:
"所持金をちょうど使い切りました。"と表示する
elif 合計金額が所持金より少ない場合:
"おつりの値段"を表示する
else:
#上記条件以外
"所持金が足りません!"と表示する
最初は理解しにくいかもしれません。
しかし、1つ1つ分解してゆっくり解読していくとかなりシンプルなことに気が付きます。
比較演算子はif文の中でも特に使用頻度の高い条件です。
何度もトライしてスキルに変えていきましょう。
論理演算子
論理演算子には以下の種類が存在します。
論理演算子 | 書き方 | 条件内容 |
and | X and Y | X・Yともに条件を満たしている(True)の場合 → True 上記以外 → False |
or | X or Y | XまたはYのどちらかがTrueの場合 → True どちらも条件に満たしていない場合 → False |
not | not X | Xではない場合 → True Xの場合 → False |
論理演算子は一見暗号に見えるかもしれません。
しかし、単語を理解できれば全く難しくはありません。
では実際にサンプルを通して書き方をみていきましょう。
and(論理積)の使い方
まずはandを使用したサンプルです。
# andを仕様したサンプル
x = 50
if x > 20 and x < 100:
print("True")
else:
print("False")
andは2つの条件をともに満たしている場合にTrueを返します。
上記サンプルでは
・xが20より大きい場合
・xが100より小さい場合
の2つの条件を提示しています。
今回は2つの条件に満たしているため、実行するとTrueを出力します。
or(論理和)の使い方
続いてorを使用したサンプルを見ていきましょう。
# orを仕様したサンプル
x = 50
if x < 60 or x > 100:
print("True")
else:
print("False")
orは2つの条件のどちらか1つでも満たしていればTrueを返します。
上記サンプルでは
・xが60より小さい場合
・xが100より大きい場合
の2つを提示しています。
今回はxが50であるため、実行すると60より小さいという条件を満たしTrueを出力します。
not(否定)の使い方
最後にnotを使用したサンプルを見ていきましょう。
# notを仕様したサンプル
x = 50
if not x == 100:
print("True")
else:
print("False")
notは条件を否定する、つまり条件に合致していない場合にTrueを返します。
上記サンプルではxが100ではない場合を条件として提示しています。
xが50であるため、実行するとTrueを出力します。
< 【無料】ゼロからはじめるPython入門講座 >
条件が多い場合は複数行にしてみる
プログラミングをしているとたまに、3つ・4つ条件分岐をしなければならない状態がでてきます。
例えばこんな感じです。
v = 5
x = 10
y = 20
z = 30
if v != 5 and x > 10 and y < 10 and z == 30:
print("True")
else:
print("False")
そんな場合は条件文を複数行に分けてみましょう。
複数行にするにはバックスラッシュ(\)を使用します。
複数行にすると以下のようになります。
# 複数行にしてみる
v = 5
x = 10
y = 20
z = 30
if v != 5 and x > 10 \
and y < 10 and z == 30:
print("True")
else:
print("False")
どうでしょうか。
条件が2つずつになって見やすくなりましたよね。
もし、条件が多数現れた場合はぜひ活用してみてください。
if文を1行で書く(三項演算子)
ここでもう1つ。
pythonでは複数条件を1行で書ける三項演算子という書き方があります。
三項演算子の基本的な以下の通りです。
条件を満たしたとき(True)の処理 if 条件式 else 条件を満たさないとき(False)の処理
x = 50
if x > 20:
print("True")
else:
print("False")
上記サンプルは本記事で見てきた条件分岐ですね。
これを三項演算子で1行にすると下のようになります。
# 三項演算子を使ってみる
x = 50
print("True") if x > 20 else print("False")
三項演算子は見た目上はすっきりです。
しかし、正直扱いにくく、加えて処理も少し遅くなる結果も出ています。
単純なコードでエラーや処理速度の低下を出さないために、私は三項演算子の使用はあまりおすすめしていません。
今回は三項演算子という使い方もありますよという紹介に留めておきます。
まとめ:Pythonのif文
pythonのif文の基礎は理解できたでしょうか。
本記事を理解できていれば現場でも十分な条件分岐は可能です。
条件方法や書き方は覚えようとしなくても大丈夫です。
使い方を忘れた場合や少し不安を抱いた場合に再度読み返してみましょう。
< 【無料】ゼロからはじめるPython入門講座 >
おすすめ記事
-
【有料版を利用するべき】Progateを正しく利用してプログラミングの基礎を身に付けよう