Pythonのきほん:if文と演算子

環境

  • Windows 10
  • Python 3.10.1
  • VSCode

使用するソースコード

以下の公開リポジトリに置いています

GitHub - masayan1126/tao-py-py: 作業自動化用 Python ライブラリ
作業自動化用 Python ライブラリ. Contribute to masayan1126/tao-py-py development by creating an account on GitHub.

特徴

  • 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学習におすすめの書籍

独習Python/山田祥寛【3000円以上送料無料】
bookfan 1号店 楽天市場店
¥ 3,300(2022/08/04 17:32時点)
タイトルとURLをコピーしました