注目キーワード
  1. Python
  2. コンペ

Python if文での文字列比較完全ガイド|基本から実践まで7つの方法を徹底解説

  • 2025年6月19日
  • 2025年6月19日
  • Python
  • 4回
  • 0件

Pythonのif文での文字列比較の基本

完全一致の比較(==演算子)

Pythonで最も基本的な文字列比較は==演算子を使った完全一致の判定です。2つの文字列が完全に同じ場合にTrue、異なる場合にFalseを返します。

text = "hello"

if text == "hello":
    print("文字列が一致しました")
else:
    print("文字列が一致しません")

# 実行結果: 文字列が一致しました

大文字と小文字は区別されるため、以下のような場合はFalseとなります。

text = "Hello"

if text == "hello":
    print("一致")
else:
    print("不一致")

# 実行結果: 不一致

不一致の比較(!=演算子)

文字列が異なることを確認したい場合は、!=演算子を使用します。

user_input = "no"

if user_input != "yes":
    print("処理を中止します")
else:
    print("処理を継続します")

# 実行結果: 処理を中止します

部分一致での文字列比較

in演算子を使った判定方法

特定の文字列が含まれているか確認したい場合は、in演算子を使用します。

filename = "sample_data.csv"

if ".csv" in filename:
    print("CSVファイルです")
else:
    print("CSVファイルではありません")

# 実行結果: CSVファイルです

not in演算子の活用

逆に、特定の文字列が含まれていないことを確認する場合はnot in演算子を使用します。

email = "user@example.com"

if "@" not in email:
    print("無効なメールアドレスです")
else:
    print("有効なメールアドレスの形式です")

# 実行結果: 有効なメールアドレスの形式です

前方一致・後方一致での文字列比較

startswith()メソッドの使い方

文字列が特定の文字で始まっているか確認するには、startswith()メソッドを使用します。

url = "https://www.example.com"

if url.startswith("https://"):
    print("セキュアなURLです")
else:
    print("HTTPSではありません")

# 実行結果: セキュアなURLです

endswith()メソッドの使い方

文字列が特定の文字で終わっているか確認するには、endswith()メソッドを使用します。

filename = "data.json"

if filename.endswith(".json"):
    print("JSONファイルです")

# 実行結果: JSONファイルです

大文字小文字を区別しない文字列比較

lower()とupper()メソッドの活用

大文字小文字を区別せずに比較したい場合は、両方の文字列をlower()またはupper()で統一してから比較します。

user_input = "YES"

if user_input.lower() == "yes":
    print("処理を実行します")

# 実行結果: 処理を実行します

実務でよく使われるケース

ユーザー入力の処理では、大文字小文字を区別しない比較がよく使われます。

command = input("続行しますか? (yes/no): ")

if command.lower() in ["y", "yes", "ok"]:
    print("処理を続行します")
elif command.lower() in ["n", "no", "cancel"]:
    print("処理を中止します")
else:
    print("無効な入力です")

複数条件での文字列比較

and演算子を使った複合条件

複数の条件をすべて満たす場合は、and演算子を使用します。

password = "MyPassword123"

if len(password) >= 8 and "123" in password:
    print("パスワードは8文字以上で数字を含んでいます")

# 実行結果: パスワードは8文字以上で数字を含んでいます

or演算子を使った複合条件

複数の条件のいずれかを満たす場合は、or演算子を使用します。

file_extension = "txt"

if file_extension in ["txt", "csv", "json"]:
    print("処理可能なファイル形式です")

# 実行結果: 処理可能なファイル形式です

正規表現を使った高度な文字列比較

より複雑なパターンマッチングが必要な場合は、正規表現を使用します。reモジュールを使用します。

import re

email = "user@example.com"
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'

if re.match(pattern, email):
    print("有効なメールアドレス形式です")
else:
    print("無効なメールアドレス形式です")

# 実行結果: 有効なメールアドレス形式です

よくある間違いと注意点

is演算子との違い

文字列比較では==演算子を使用し、is演算子は使用しないようにしましょう。is演算子はオブジェクトの同一性を判定するためのものです。

# 正しい方法
text1 = "hello"
text2 = "hello"

if text1 == text2:
    print("文字列が同じです")

# 避けるべき方法
if text1 is text2:
    print("同じオブジェクトです")  # 予期しない結果になる可能性

型変換の注意点

文字列と数値を比較する場合は、事前に型変換を行う必要があります。

user_input = "123"
number = 123

# 正しい比較方法
if user_input == str(number):
    print("文字列として同じです")

# または
if int(user_input) == number:
    print("数値として同じです")

まとめ

Pythonのif文での文字列比較について、7つの主要な方法を解説しました。

  1. 完全一致==演算子を使用
  2. 不一致!=演算子を使用
  3. 部分一致in演算子とnot in演算子を使用
  4. 前方一致startswith()メソッドを使用
  5. 後方一致endswith()メソッドを使用
  6. 大文字小文字を区別しない比較lower()upper()メソッドを活用
  7. 複数条件andor演算子を使用

適切な比較方法を選択することで、より読みやすく効率的なPythonコードが書けるようになります。実際のプロジェクトでは、これらの方法を組み合わせて使用することが多いので、それぞれの特徴を理解して使い分けてください。

最新情報をチェックしよう!