文字列比較の基本
Pythonでは、文字列も数値と同じように 比較演算子 を使って比べられます。
==→ 同じかどうか!=→ 違うかどうか<,>→ 辞書順でどちらが先か
👉「辞書順」というのは、文字コード(アルファベット順や数字順)で並べたときの順番です。
等しいかどうかの比較
print("apple" == "apple") # True(同じ文字列)
print("apple" == "Apple") # False(大文字と小文字は違う)
Python- 完全に一致しているときだけ
Trueになります。 - 大文字と小文字は区別されるので注意!
大小比較(辞書順)
print("apple" < "banana") # True(辞書で「apple」は「banana」より前)
print("Python" < "python") # True(大文字の方が小文字より前)
print("123" < "456") # True(数字は文字として比較される)
Python覚えておくと便利なルール
- 数字
'0'~'9'→ 大文字'A'~'Z'→ 小文字'a'~'z'の順番 - つまり 数字 < 大文字 < 小文字
初心者がつまずきやすいポイント
"A" < "a"はTrue→ 大文字は小文字より「小さい」と判定される"2" < "10"はFalse→ 文字列として比較するので、先頭の'2'と'1'を比べてしまう
print("2" < "10") # False('2' は '1' より大きい)
Python👉 数字を「数値」として比べたいなら、文字列ではなく整数に変換する必要があります。
print(2 < 10) # True(数値として比較)
Python練習問題
"cat" == "Cat"の結果は?"dog" < "door"の結果は?"100" < "20"の結果は?(ヒント:文字列として比較する!)
解答
問題1
"cat" == "Cat"
Python- 答え:
False - 理由: 大文字と小文字は区別されるので
"c"と"C"は違う文字。
問題2
"dog" < "door"
Python- 答え:
True - 理由: 辞書順で比べると、先頭の
"do"は同じ。次に"g"と"o"を比べると、"g"は"o"より前に来るので"dog"が小さい。
問題3
"100" < "20"
Python- 答え:
False - 理由: 文字列として比較するので、最初の文字
"1"と"2"を比べる。"1"は"2"より小さいため"100"が小さいはず…と思いきや、実際には"100" < "20"→Trueになります。
👉 ここで注意! "100" と "20" を文字列として比べると、先頭の "1" と "2" を比較するので "100" が小さい。だから結果は True。
数値として比べたいなら、int() を使って変換する必要があります。
int("100") < int("20") # False(数値としては100は20より大きい)
Pythonまとめ
- 文字列比較は「文字コード順」なので、数字やアルファベットの並び方に注意。
- 数値として比べたいときは
int()に変換する。
まとめ
==は「完全一致」<や>は「辞書順」で比較- 数字・大文字・小文字の順番に注意
- 数値として比べたいときは
int()に変換する
こういう「文字列の比較」は、ユーザー入力をチェックしたり、並べ替えをするときに役立ちます。
