目標
「比較演算子」について理解する。
「帰属性判定演算子」について理解する。
「formatメソッド」について理解する。
比較演算子の概要
演算子についての復習
演算子がどのようなものだったかは、次の記事で確認できます。「演算子」と「非演算子」、「演算子の種類」「演算子の優先度」などを扱っています。
比較演算子とは
比較演算子とは、条件「より大きい、より小さい、以上、以下、等しい、等しくない、含まれている、含まれていない」で2つ、もしくは、それ以上の値や式を比較して、その比較結果が比較条件として合っていれば「True」、違っていれば「False」を返す演算子です。
比較演算子の種類
比較演算子 | 意味 | 比較できる値の数 |
x == y | xとyは等しい | 2つ |
x != y | xとyは等しくない | 2つ |
x >= y | xはy以上 | 2つ |
x <= y | xはy以下 | 2つ |
x > y | xはyより大きい | 2つ |
x < y | xはyより小さい | 2つ |
x in y(帰属性判定演算子) | xはyに含まれている | 2つ以上(連続で適用できます) |
x not in y(帰属性判定演算子) | xはyに含まれていない | 2つ以上(連続で適用できます) |
比較演算子の利用
次のようにプログラムを記述して比較演算子の結果を確認します。比較の結果はboolean型(「True」「False」)で返されます。
整数と整数の比較
# left_number を l_n とします。
l_n = 5
# right_number を r_n とします。
r_n = 5
print('{} == {}'.format(l_n, r_n), l_n == r_n)
print('{} != {}'.format(l_n, r_n), l_n != r_n)
print('{} >= {}'.format(l_n, r_n), l_n >= r_n)
print('{} <= {}'.format(l_n, r_n), l_n <= r_n)
print('{} > {}'.format(l_n, r_n), l_n > r_n)
print('{} < {}'.format(l_n, r_n), l_n < r_n)
置換フィールドは複数設置することができます。その場合は値は左から順番に配置されます。
実行結果
整数と浮動小数点数の比較
整数と浮動小数点数の比較の場合も整数と整数の比較と同じ結果が得られます。
# left_number を l_n とします。
l_n = 5
# right_number を r_n とします。
r_n = 5.0
print('{} == {}'.format(l_n, r_n), l_n == r_n)
print('{} != {}'.format(l_n, r_n), l_n != r_n)
print('{} >= {}'.format(l_n, r_n), l_n >= r_n)
print('{} <= {}'.format(l_n, r_n), l_n <= r_n)
print('{} > {}'.format(l_n, r_n), l_n > r_n)
print('{} < {}'.format(l_n, r_n), l_n < r_n)
実行結果
文字列の比較
文字列では「大文字」と「小文字」が区別されます。また、文字列の大小関係は文字コードで判定されます。
# left_string を l_s とします。
l_s = 'PYTHON'
# right_string を r_s とします。
r_s = 'python'
print('{} == {}'.format(l_s, r_s), l_s == r_s)
print('{} != {}'.format(l_s, r_s), l_s != r_s)
print('{} >= {}'.format(l_s, r_s), l_s >= r_s)
print('{} <= {}'.format(l_s, r_s), l_s <= r_s)
print('{} > {}'.format(l_s, r_s), l_s > r_s)
print('{} < {}'.format(l_s, r_s), l_s < r_s)
実行結果
文字コードの確認と比較
先ほどの文字列の判定でも大小関係を比較していました。文字列の大小関係の比較はUnicode(文字コードの種類)の値をもとに判定を受けます。Unicodeの値(コードポイント)はpythonの組み込み関数「ord関数」で取得できます。
https://docs.python.org/ja/3/library/functions.html#ord
# left_string を l_s とします。
l_s = 'P'
# right_string を r_s とします。
r_s = 'p'
print(ord(l_s))
print(ord(r_s))
print('{} == {}'.format(l_s, r_s), l_s == r_s)
print('{} != {}'.format(l_s, r_s), l_s != r_s)
print('{} >= {}'.format(l_s, r_s), l_s >= r_s)
print('{} <= {}'.format(l_s, r_s), l_s <= r_s)
print('{} > {}'.format(l_s, r_s), l_s > r_s)
print('{} < {}'.format(l_s, r_s), l_s < r_s)
実行結果
リスト・タプルの比較
リストやタプルの比較では中身が「完全に一致している」かそうでないかで「True」「False」が返されます。大小関係については、要素の0番目(最初)から比較を行い、一致していない項目で、判定を行います。
完全一致
# left_list を l_l とします。
l_l = ['python', 'java', 'PHP', 'C']
# right_list を r_l とします。
r_l = ['python', 'java', 'PHP', 'C']
print('{} == {}'.format(l_l, r_l), l_l == r_l)
print('{} != {}'.format(l_l, r_l), l_l != r_l)
print('{} >= {}'.format(l_l, r_l), l_l >= r_l)
print('{} <= {}'.format(l_l, r_l), l_l <= r_l)
print('{} > {}'.format(l_l, r_l), l_l > r_l)
print('{} < {}'.format(l_l, r_l), l_l < r_l)
実行結果
みっつめの要素で一致しない
大小関係は「PHP」と「Ruby」の部分で判定されます。
# left_list を l_l とします。
l_l = ['python', 'java', 'PHP', 'C']
# right_list を r_l とします。
r_l = ['python', 'java', 'Ruby', 'C']
print('{} == {}'.format(l_l, r_l), l_l == r_l)
print('{} != {}'.format(l_l, r_l), l_l != r_l)
print('{} >= {}'.format(l_l, r_l), l_l >= r_l)
print('{} <= {}'.format(l_l, r_l), l_l <= r_l)
print('{} > {}'.format(l_l, r_l), l_l > r_l)
print('{} < {}'.format(l_l, r_l), l_l < r_l)
実行結果
要素の個数が異なる場合
要素が数以外で一致してることが前提ですが、この場合は要素の数が多いいほど大小関係では大きくなります。
# left_list を l_l とします。
l_l = ['python', 'java', 'PHP', 'C']
# right_list を r_l とします。
r_l = ['python', 'java', 'PHP']
print('{} == {}'.format(l_l, r_l), l_l == r_l)
print('{} != {}'.format(l_l, r_l), l_l != r_l)
print('{} >= {}'.format(l_l, r_l), l_l >= r_l)
print('{} <= {}'.format(l_l, r_l), l_l <= r_l)
print('{} > {}'.format(l_l, r_l), l_l > r_l)
print('{} < {}'.format(l_l, r_l), l_l < r_l)
実行結果
帰属性判定演算子(in演算子)
帰属性判定演算子を利用するとオブジェクトの中に探したい要素が含まれているかを確認することができます。
# left_string を l_s とします。
l_s = 'PHP'
# right_list を r_l とします。
r_l = ['python', 'java', 'PHP', 'C']
print('{} in {}'.format(l_s, r_l), l_s in r_l)
print('{} not in {}'.format(l_s, r_l), l_s not in r_l)
実行結果
帰属性演算子を連続で利用する場合
# left_string を l_s とします。
l_s = 'PHP'
# middle_list を m_l とします。
m_l = ['PHP', 'C']
# right_list を r_l とします。
r_l = [['python', 'java'], ['PHP', 'C']]
print('{} in {} in {}'.format(l_s, m_l, r_l), l_s in m_l in r_l)
print('{} in {} not in {} '.format(l_s, m_l, r_l), l_s in m_l not in r_l)
実行結果
今回は以上になります。この記事では比較演算子についてのみ扱っています。この他にも、比較には組み込み関数で行えるものもあります(この記事では扱いません)。次回は論理演算子について扱います。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。