Pythonのstartswith()・endswith()の使い方!文字列の前後をチェックする方法
生徒
「Pythonで、ある文字列が特定の単語で始まっているかどうか調べることってできますか?」
先生
「もちろんできますよ!そのときに便利なのがstartswith()とendswith()というメソッドです。」
生徒
「終わりの文字列も調べられるんですね!使い方を教えてください!」
先生
「よし、基本から応用まで丁寧に解説していきましょう!」
1. startswith()とは?文字列の先頭をチェック
startswith()は、ある文字列が特定の文字や単語で始まっているかどうかを調べるためのメソッドです。
書き方はとてもシンプルです:
message = "Hello, Python!"
print(message.startswith("Hello"))
True
このように、「Hello, Python!」という文字列が「Hello」で始まっているのでTrue(正しい)と判断されます。
2. endswith()とは?文字列の末尾をチェック
今度はendswith()です。これは文字列が特定の文字や単語で終わっているかどうかを確認できます。
filename = "report.pdf"
print(filename.endswith(".pdf"))
True
ファイル名のチェックや拡張子の判定でよく使われます。
3. startswith()・endswith()の戻り値はTrueかFalse
どちらのメソッドも、「本当にそうか?」という質問に答える形です。
返ってくる値は「True(正しい)」か「False(間違い)」の2つです。
たとえば、以下のように使います:
url = "https://example.com"
print(url.startswith("http")) # True
print(url.endswith(".net")) # False
4. 大文字・小文字の違いに注意しよう
Pythonでは、大文字と小文字を区別します(これを「ケースセンシティブ」と言います)。
greeting = "Hello"
print(greeting.startswith("hello")) # False
False
大文字と小文字が違うだけで、結果が変わるので注意が必要です。
5. 複数の候補でstartswith()・endswith()を使う方法
複数のパターンを同時にチェックしたいときは、タプルを使います。
たとえば、画像ファイルかどうかをチェックするには:
image = "photo.jpeg"
print(image.endswith((".jpg", ".jpeg", ".png")))
True
このように、いくつかの選択肢をまとめてチェックできます。
6. startswith()・endswith()の活用例:ファイル振り分け
たとえば、拡張子ごとにファイルを分類したいとき、こんなふうに使えます:
files = ["document.txt", "image.jpg", "script.py", "notes.txt"]
for file in files:
if file.endswith(".txt"):
print(file + " はテキストファイルです。")
document.txt はテキストファイルです。
notes.txt はテキストファイルです。
とても簡単な条件分岐で、文字列の末尾チェックができます。
7. startswith()・endswith()の応用テクニック
文字列の前後に「特定の語句」が含まれているかどうかを調べることで、以下のような応用ができます:
- メールアドレスのドメイン判定(
endswith("@gmail.com")) - URLの安全確認(
startswith("https")) - ログファイルの分類(例:
startswith("ERROR"))
8. 大文字・小文字を無視して判定するには?
どうしても大文字・小文字の違いを気にせず判定したいときは、文字列をすべて小文字や大文字に変換してから使いましょう。
word = "Python"
print(word.lower().startswith("py")) # True
lower()はすべて小文字にするメソッド、逆にupper()はすべて大文字にします。
まとめ
ここまで、Pythonのstartswithとendswithを使って文字列の先頭や末尾を判定する方法を幅広く学んできました。特定の語句で始まっているかどうか、あるいは特定の拡張子で終わっているかどうかを簡潔に調べることができるため、ファイル名の整理、ログ解析、メールアドレスの分類、URLの安全確認などさまざまな場面で役立ちます。文字列の前後を判定するという基本操作は、プログラム全体の流れを整理し、目的ごとに条件分岐を分かりやすく実装するためにも欠かせません。特に、複数の候補をタプルにまとめて判定できる点は実務的な場面で非常に便利で、画像ファイルや文章ファイルなどを迷わず振り分けられるため、データ処理に強い力を発揮します。 また、大文字と小文字の違いをそのまま判定に使う習慣はコードの正確性を高めますが、あえてケースを無視したい場面ではlowerやupperを活用することで柔軟に対応できます。文字列は小さな単位ですが、処理次第で大きな意味を持つため、今回のような基礎的なメソッドを理解しておくことは、Pythonでの文字列操作の幅を一気に広げる大切な一歩となります。特定のパターンを持つデータを見つけたいときや、規則的な文字列から情報を切り出したいときにも大いに役立ち、シンプルな構文ながら奥が深く、状況に応じて使い分けることで正確な処理が可能になります。 実際にプログラムとして活用すると、以下のようにファイル名の分類やURLの安全確認を簡単に行えます。こうした実践的な例を生活や業務に取り入れることで、自然と文字列の扱いに慣れ、より複雑な処理にも挑戦しやすくなります。
サンプルプログラムで確認しよう
ここでは、学んだ内容を振り返りながら、文字列の前後を判定するサンプルコードを確認してみましょう。startswithとendswithがどのように役立つかを実際の動きで理解できます。
files = ["data.txt", "report.pdf", "photo.png", "memo.txt", "script.py"]
for f in files:
if f.endswith(".txt"):
print(f + " はテキストファイルです。")
if f.startswith("re"):
print(f + " は re で始まっています。")
url = "https://example.com/page"
if url.startswith("https"):
print("安全な通信の可能性があります。")
このように、文字列の前後を調べるだけで分類・識別・管理が簡単になり、プログラム全体を効率よく進められます。ファイルごとに動作を変えたいときや、一定のパターンに一致するデータだけを取り扱いたいときにも非常に効果的です。特にデータ分析やログ確認、ネットワーク系のチェック処理では文字列の始まりや終わりに意味があることが多く、今回の知識は必ず役立つ基礎スキルとなります。Pythonを使って実務的な処理をする際にも頻繁に登場するため、日ごろから積極的に使って慣れておくことが大切です。
生徒
「startswithとendswithって思ったよりも使いやすいですね。前後の文字しか見ていないのに、ファイルの分類やURLの確認が簡単にできてびっくりしました。」
先生
「そうですね。文字列の先頭や末尾は情報の整理にとても重要なんです。特にファイル名やURLのように明確なルールがあるデータは、こうしたメソッドが非常に効果的です。」
生徒
「複数の拡張子をまとめて判定できるタプルの使い方も便利でした。画像ファイルの整理にも使えそうです!」
先生
「そのとおりです。複数のパターンを扱う場面は実務でもかなり多いので、今回の方法を覚えておけば応用がたくさんできますよ。」
生徒
「大文字と小文字の違いで結果が変わるのも理解しました。必要に応じてlowerを使って統一して判定するのも便利ですね。」
先生
「ええ、その使い分けができるようになるとさらに柔軟に文字列を扱えるようになります。これからもたくさん活用してみてください。」