Python

Pythonで条件分岐する方法は?

Pythonで条件分岐する方法は?
条件分岐といえば「if文」というのがプログラミングあるあるです。
かく言う私も「JavaScript」や「Excel VBA」で数えきれないほどやってきました。
しかし、基本的な考え方は一緒なものの、書き方は言語によって微妙に違うもの。
Pythonのif文を調べたのでまとめてみました。

 

Pythonでのif文の書き方は?

 

条件に当てはまったときだけ処理をしたい場合

「if 条件式 :」を使います。
条件に当てはまらないときは、何も処理をしません。

a = 10
if a > 5 :
    print('5より大きいです。')
 
# ⇒ 5より大きいです。

 

条件に当てはまったときと当てはまらないときで別の処理をしたい場合

「if 条件式 : else:」を使います。

a = 2
if a > 5 :
    print('5より大きいです。')
else:
    print('5より小さいです。')
 
# ⇒ 5より小さいです。

 

条件式が複数ある時

「if 条件式 : elif 条件式 : else:」を使います。
JavaScriptのように「else if」ではなく、「elif」と書くのがPythonならでは。
「elif」は1回だけという制限はありません。
PythonにはJavaScriptでいう「switch文」がないので、条件の数だけ「elif」を重ねることになります。

a = 3
if a > 10 :
    print('10より大きいです。')
elif a > 5 :
    print('5より大きいです。')
else:
    print('5以下です。')
 
# ⇒ 5以下です。

 

押さえるポイントは?

  • if、elif、elseの後に「:(コロン)」を忘れない。
  • 正しくインデントを入れる。ずれるとエラーになる。

これらはif文に限らず、制御文の基本ですね。

 

比較演算子の一覧

条件式を書くにあたり、欠かせないのが比較演算子。
一覧にしてみました。

条件 書き方
同じ a == b
a is b
異なる a != b
a is not b
小さい a < b
大きい a > b
以下 a <= b
以上 a >= b
含まれる a in b
※ともに文字列であること
bはリストやタプルでも良い
含まれない a not in b
※ともに文字列であること
bはリストやタプルでも良い

記号は他の言語でもよく目にしますね。
「is」と「in」は初めて見ました。含むを意味する「in」はとてもありがたいです。
「not」の位置は「is」と「in」で違うので、気をつけたいですね。

 

複数の条件を1文で書くには?

論理演算子(ブール演算子)を使うと複数の条件を1文で書けます。

条件 書き方
全部がTrue and
いずれかがTrue or
TrueとFalseを反転 not

if文であれば「elif」を使って条件式を複数書く事ができるので、それほど使わないかもしれません。
私のようにワンライナーで書きたがるとか、while文で複数条件を指定したいときとかに重宝します。

 

andの例

a = 3
if a > 1 and a < 5 : print('aは1より大きく、5より小さい')
 
# ⇒ aは1より大きく、5より小さい

 

まとめ

Pythonにおけるif文をまとめてみました。
何事も基礎基本が大事ですので、使いこなせるように練習します。

-Python
-, , , , , , , , , , , , , , ,