05-Python

Python(Part.11)| python【比較演算子】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

「比較演算子」について理解する。
「帰属性判定演算子」について理解する。
「formatメソッド」について理解する。

比較演算子の概要

演算子についての復習

演算子がどのようなものだったかは、次の記事で確認できます。「演算子」と「非演算子」、「演算子の種類」「演算子の優先度」などを扱っています。

Python(Part.3)| python【算術演算子】pythonの基礎として演算子について扱っています。「演算子」「被演算子」「演算子の優先度」優先度による演算の順番の変化を確認しています。...

比較演算子とは

比較演算子とは、条件「より大きい、より小さい、以上、以下、等しい、等しくない、含まれている、含まれていない」で2つ、もしくは、それ以上の値や式を比較して、その比較結果が比較条件として合っていれば「True」、違っていれば「False」を返す演算子です。

比較演算子の種類

比較演算子意味比較できる値の数
x == yxとyは等しい2つ
x != yxとyは等しくない2つ
x >= yxはy以上2つ
x <= yxはy以下2つ
x > yxはyより大きい2つ
x < yxは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)

formatメソッドは引数に指定した値を文字列側の「{}波カッコ」部分に表示させてくれるメソッドです。「{}波カッコ」部分を「置換フィールド」と呼びます。

置換フィールドは複数設置することができます。その場合は値は左から順番に配置されます。

実行結果

整数と浮動小数点数の比較

整数と浮動小数点数の比較の場合も整数と整数の比較と同じ結果が得られます。

# 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

ord関数は引数に一文字しか利用できません。複数の文字(文字列)を利用するとエラーとなります。

〇 ord(‘A’)
✕ ord(‘ABCD’)

# 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)

実行結果

今回は以上になります。この記事では比較演算子についてのみ扱っています。この他にも、比較には組み込み関数で行えるものもあります(この記事では扱いません)。次回は論理演算子について扱います。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST