なんで必要なのか
Pythonエンジニア認定試験を勉強している時に、比較演算で文字列を比較しており理解できなかったものを、理解したためまとめておきます。
どういったものか
>>> 'ABC'<'C'<'Pascal'<'Python'
True
上記の比較がなぜTrueになるのか。
→文字コードを比較しているため
そもそも、文字コードポイントとはpythonがあらかじめ設定しているものです。ord(文字列)で簡単に確認できます。
例えば、ord('a')ならば97、ord('A')だと65といったようになっており、上記の文字列の比較はこの数値を比較しています。
ただし、文字列のコードポイントを比較するといっても、ord('ABC')はタイプエラーが返ってきます。
実際に
>>> 'ABC'<'C'<'Pascal'<'Python'
True
注意点として、文字列の比較は最初の文字コードのポイントを比較しています。
ord('A')=65 < ord('C')=67という風にです。
'Pascal'や'Python'は'P'始まりなので次も文字'a'と'y'を比較します。
ord('a')=97 < ord('y')=121なので'Pascal'<'Python'は正しいことになります。