Pythonのstartswith()メソッドは、文字列が特定の文字やパターンで始まっているかを確認するための便利な機能です。このメソッドを使うことで、文字列の先頭を簡単にチェックすることができます。

基本的な使い方

text = "Hello World"
result = text.startswith("Hello")
print(result)  # True

startswith()メソッドは、文字列が指定したプレフィックスで始まる場合はTrue、そうでない場合はFalseを返します。

複数のプレフィックスをチェックする

タプルを使用することで、複数の文字列のいずれかで始まっているかをチェックできます:

text = "Hello World"
result = text.startswith(("Hello", "Hi", "Hey"))
print(result)  # True

開始位置と終了位置を指定する

startswith()メソッドは、チェックを開始する位置と終了位置を指定することもできます:

text = "Hello World"
result = text.startswith("World", 6)  # 6文字目から検索
print(result)  # True

よくあるエラーと解決策

TypeError: startswith first arg must be str or a tuple of str, not int

このエラーは、startswith()の引数に文字列やタプル以外の型(数値など)を指定した場合に発生します。

# エラーの例
text = "Hello World"
number = 123
text.startswith(number)  # TypeError

# 正しい使用法
text.startswith(str(number))  # 数値を文字列に変換

大文字・小文字を区別しないチェック

startswith()は大文字・小文字を区別します。大文字・小文字を区別せずにチェックしたい場合は、lower()やupper()メソッドと組み合わせて使用します:

text = "Hello World"
result = text.lower().startswith("hello")
print(result)  # True

実践的な使用例

ファイル名の拡張子チェック:

filename = "document.pdf"
if filename.endswith(".pdf"):
    print("PDFファイルです")

URLのプロトコルチェック:

url = "https://example.com"
if url.startswith(("http://", "https://")):
    print("有効なURLです")

まとめ

startswith()メソッドは、Pythonで文字列の先頭をチェックする際の標準的な方法です。シンプルで読みやすく、多くのユースケースで活用できます。特に以下の点に注意して使用しましょう:

  • 引数には文字列またはタプルを指定する
  • 大文字・小文字は区別される
  • 必要に応じて開始位置と終了位置を指定できる

これらの機能を適切に使用することで、効率的な文字列処理が可能になります。