環境
- Windows 10
- Python 3.10.1
- VSCode
特徴
- Pythonでは条件分岐はすべてif...elif..else...で記述する
if 条件式A: 条件式Aが真(true)の場合に実行する処理 elif 条件式B: 条件式Aが偽(false)で条件式Bが真(true)の場合に実行する処理 else: すべての条件式が偽(false)の場合に実行する処理
- Python3.10からmatch~case文が追加されたので、条件式のパターンが多い場合等はこちらを検討する
Pythonでは、===での厳密な比較はできません
比較演算
AとBが等しい
A == B
if len(string) == 0:
raise EmptyStringError("空文字は指定できません")
- 以下のように記述することも可能
- ※ただしシングルトンのオブジェクトのみに使用可能なので、基本的には、==で比較するほうがよい
A is B
print(None is None) // True
なお、シングルトン以外の値を比較すると、構文エラーがが生じる
SyntaxWarning: "is" with a literal. Did you mean "=="?
AとBが等しくない
A != B
print(1 != 1) // False
- 以下のように記述することも可能
- ※ただしシングルトンのオブジェクトのみに使用可能なので、基本的には、==で比較するほうがよい
is not
print(None is not None) // False
以下・以上/小さい・大きい
一般的なプログラミング言語同様、<、>、<=、>=が使用できる(※詳細は割愛)
真偽値をそのまま条件式で使う
以下のように、if文の条件式で真偽値をそのまま使用することが可能。
a = "yan"
b = "masayan"
if a in b:
print(f"{a}は{b}に含まれています")
else:
print(f"{a}は{b}に含まれていません")
// yanはmasayanに含まれています
また、pythonでは空文字はFalse扱いなので、以下のようにFalseとなる値の前にnotを付与することで、else節ではなく、if節の処理が実行される
a = ""
if not a:
print("aには値が入っています")
else:
print("aには値が入っていません")
// aには値が入っています
AがBに含まれる
A in B
print("yan" in "masayan") // True
AがBに含まれない
A not in B
※上記のA in Bの逆なので割愛
複数条件式
他言語の&&や||などの記号は使用できない。それぞれand, or を使用する
val = "foo"
if val == "":
print("valは空文字です")
elif val == "hoge" :
print("valはhogeです")
elif val != "" and val != "hoge" :
print("valは空文字でもなく、hogeでもありません")
else:
print("valはhogeです")
// valは空文字でもなく、hogeでもありません
三項演算子
参考演算子(if分のショートハンド)も用意されている
x if 条件 else y
(条件が真ならx、偽ならyを返す)
def is_canceled(status):
return True if status == "canceled" else False
print(is_canceled(status = "canceled")) // True
まとめ
いかがでしたでしょうか。本記事では、Pythonの基本的なif文と演算子の使い方について紹介しています。ぜひ参考にしてみてください。