Pythonで文字列を比較する方法!==・!=・大小比較の基本を解説
生徒
「Pythonで、2つの文字列が同じかどうかを調べる方法ってありますか?」
先生
「はい、Pythonでは==という記号を使って、文字列を簡単に比較できますよ。」
生徒
「へぇ、記号を使うんですね!違う文字列のときはどうするんですか?」
先生
「そのときは!=を使います。では、これからPythonでの文字列比較の基本を一緒に学んでいきましょう!」
1. Pythonで文字列を比較する基本:==(等しい)と!=(等しくない)
Python(パイソン)では、文字列(もじれつ)を比べたいとき、==(イコール2つ)と!=(びっくりマークとイコール)という記号を使います。
たとえば、名前が「Taro」と「Taro」なら同じなのでTrue(真)になります。違えばFalse(偽)になります。
以下の例を見てみましょう。
name1 = "Taro"
name2 = "Taro"
print(name1 == name2) # 同じならTrue
print(name1 != name2) # 違わないのでFalse
True
False
==は、「左右の文字列がまったく同じか?」を調べる演算子(えんざんし)です。演算子とは、計算や比較をするための記号のことです。
!=は、「左右の文字列が違うかどうか?」を調べます。たとえば、「apple」と「orange」は違うので、!=を使えばTrueになります。
2. 文字列の大小を比べる:<(より小さい)や >(より大きい)
Pythonでは、文字列の「順番」も比べることができます。文字列はアルファベットの「辞書順(じしょじゅん)」で判断されます。
たとえば、「apple」は「banana」よりも辞書で先に出てくるので、小さいとみなされます。
次のコードを見てください。
print("apple" < "banana") # True(辞書で先)
print("orange" > "grape") # True(後に出る)
True
True
これはあくまで「文字の順番」で比べているので、計算の大小とはちょっと違います。数字を比べるときの大小比較と似ていますが、「文字列は辞書順」で判断されるという点を覚えておきましょう。
3. 大文字と小文字は区別される?
Pythonでは、英語の大文字(Upper case)と小文字(Lower case)は違う文字として扱われます。
たとえば、「Apple」と「apple」は見た目は似ていますが、Pythonでは違う文字列と判断されます。
print("Apple" == "apple") # False(違う文字列とみなされる)
False
このように、大小文字を正確にそろえないと==では一致しません。
どうしても大文字小文字を無視して比べたい場合は、lower()という文字列のメソッドを使って、小文字に変換してから比べる方法があります。
print("Apple".lower() == "apple".lower()) # True(両方小文字にして比較)
True
lower()は、すべての文字を小文字に変える命令です。「変換する」ことで、見た目が違っても中身が同じかをチェックできるようになります。
4. 日本語の文字列も比較できる?
Pythonでは、日本語の文字列も問題なく比較できます。
たとえば、「あい」と「あう」は異なる文字列ですし、「たろう」と「たろう」は同じと判断されます。
print("たろう" == "たろう") # True
print("あい" < "あう") # True(あいの方が先)
True
True
日本語でも==や<などを使えば、正しく文字列の比較ができます。ただし、漢字や記号も含めると、順番が複雑になるので注意が必要です。
5. ユーザーから入力された文字と比べてみよう
実際のプログラムでは、キーボードから入力された文字列と、あらかじめ用意しておいた文字列を比べることもよくあります。
例として、パスワード認証のようなコードを見てみましょう。
password = "pass123"
user_input = input("パスワードを入力してください:")
if user_input == password:
print("認証成功!")
else:
print("パスワードが違います。")
パスワードを入力してください:pass123
認証成功!
input()は、キーボードから文字を入力できる関数です。入力された値が==で正しく一致すれば、「認証成功」と表示されます。
このように、文字列の比較はとても実用的で、Pythonプログラミングの基本として欠かせない技術です。
まとめ
Pythonでの文字列比較の基本をしっかり理解しよう
この記事では、Pythonで文字列を比較する方法について、==や!=といった基本的な比較演算子から、
文字列の大小比較、大文字と小文字の違い、日本語文字列の比較まで、幅広く学んできました。
Pythonにおける文字列比較は、単に文字が同じかどうかを調べるだけでなく、
プログラムの分岐処理や条件判断の土台となる、とても重要な基礎知識です。
初心者の段階でここをしっかり理解しておくことで、後の学習がぐっと楽になります。
==は「まったく同じ文字列かどうか」を調べる演算子であり、
!=は「異なる文字列かどうか」を判定します。
この二つは、ユーザー入力のチェックや、設定値の確認、分岐条件の判定など、
Pythonプログラミングのあらゆる場面で使われます。
文字列比較が正しくできないと、意図しない動作やバグにつながるため、
基本を丁寧に押さえることが大切です。
文字列の大小比較と辞書順の考え方
Pythonでは、文字列に対して<や>を使った大小比較も行えます。
この比較は、数値の大小とは異なり、「辞書順」によって判断される点がポイントでした。
アルファベットの場合は、辞書で先に出てくる単語ほど小さいと判断されます。
この仕組みを理解しておくことで、文字列の並び替えや条件分岐の処理を正しく書けるようになります。
また、日本語の文字列もPythonでは問題なく比較できますが、 ひらがな、カタカナ、漢字、記号が混ざると順序が直感と異なる場合もあります。 そのため、日本語の大小比較は「完全な順序を保証するものではない」という点を理解したうえで、 用途を限定して使うのが安全です。
大文字と小文字をそろえて比較する重要性
Pythonでは、大文字と小文字は別の文字として扱われます。
そのため、「Apple」と「apple」は異なる文字列となり、==ではFalseになります。
ユーザー入力を扱う場面では、この違いが原因で意図しない判定結果になることも少なくありません。
そのような場合に役立つのが、lower()やupper()といった文字列メソッドです。
事前に文字列を小文字や大文字にそろえてから比較することで、
表記の違いを吸収し、より柔軟で使いやすい判定処理が書けるようになります。
これは実務でも非常によく使われるテクニックです。
文字列比較を活用したサンプルプログラム
ここで、文字列比較の基本を活かしたシンプルなサンプルプログラムを確認してみましょう。 ユーザー入力を受け取り、大文字小文字を無視して比較する例です。
answer = "Python"
user_input = input("好きな言語を入力してください:")
if user_input.lower() == answer.lower():
print("一致しました")
else:
print("一致しません")
このように、文字列を比較する前に加工することで、 ユーザーにとって使いやすく、判定ミスの少ないプログラムを作ることができます。 文字列比較は小さな処理ですが、積み重ねることで大きな違いを生み出します。
生徒「文字列の比較って、思っていたよりも奥が深いですね。」
先生「そうだね。特に大文字と小文字、辞書順の考え方は大事なポイントだよ。」
生徒「lowerを使えば、入力の違いを気にしなくていいのが便利だと思いました。」
先生「いいところに気づいたね。実際のプログラムでもよく使われる方法だよ。」
生徒「文字列比較が分かると、条件分岐が書きやすくなりました。」
先生「その通り。文字列比較はPythonの基礎として、これからも何度も使う重要な技術だよ。」