Python | 文字列を比較する

Python
スポンサーリンク

文字列比較の基本

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

練習問題

  1. "cat" == "Cat" の結果は?
  2. "dog" < "door" の結果は?
  3. "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() に変換する

こういう「文字列の比較」は、ユーザー入力をチェックしたり、並べ替えをするときに役立ちます。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました