#なんで必要なのか
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'は正しいことになります。