88891


この式がTrueになるのはなぜなのでしょうか？

[code]

    "PHP"<"Perl"<"Python"
    
[/code]

文字コードで1文字ずつ比較しているようで、`"PHP"<"Perl"` がTrueになるのはわかりますが、`"Perl"<"Python"`
がなぜTrueになるのかが理解できません。

4文字目の"l"と"h"では"h"の方が小さいのではないでしょうか？  
`ord` 関数で調べても"l"=108,"h"=104となっています。

どなたかご教授ください。


CC BY-SA 4.0
2022-05-18T02:00:54.790
88890
2022-05-18T02:21:54.590
2022-05-18T02:21:21.537
3060
52677
question
python python3
Python3 文字列の比較で "Perl"<"Python" がなぜTrueになるのかが理解できません


文字列の比較では、「辞書順の比較」が行われます。つまり辞書に単語が載っている順番のように、先頭の文字から順番に比較が行われます。

`"Perl"` と `"Python"` を比較するときは、

  1. まず最初の 1 文字を比較して `P` と `P` で等しい
  2. 等しいので 2 文字目を比較して `e` と `y` で `y` の方が大きい

という順番で比較が行われ、`"Perl" < "Python"` は `True`、ということになります。

公式ドキュメント: <https://docs.python.org/3/reference/expressions.html#value-
comparisons>


CC BY-SA 4.0
2022-05-18T02:21:54.590
88891
2022-05-18T02:21:54.590
19110
88890
answer