Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック
生徒
「Pythonで文字列が特定の言葉で始まっているかどうか調べる方法ってありますか?」
先生
「はい、startswith()
とendswith()
というメソッドを使えば、文字列の前後を簡単にチェックできますよ。」
生徒
「メソッドっていうのは文字列にくっついて使う関数のことでしたよね?」
先生
「その通りです!この2つのメソッドも、文字列に対して『○○で始まる?』『○○で終わる?』と確認するための命令なんです。今からわかりやすく解説しますね。」
1. startswith()とは?文字列の先頭をチェックするメソッド
startswith()
メソッドは、文字列がある言葉で始まっているかどうかをチェックするためのものです。結果はTrue(正しい)
かFalse(間違い)
の形で返ってきます。
text = "Pythonは楽しい"
print(text.startswith("Python"))
True
このように、文字列の先頭が「Python」なので、True
になります。
2. endswith()とは?文字列の末尾をチェックするメソッド
endswith()
メソッドは、文字列が特定の言葉で終わっているかどうかを調べるために使います。
text = "Pythonは楽しい"
print(text.endswith("楽しい"))
True
このように、文字列の最後が「楽しい」で終わっているのでTrue
となります。
3. 一致しない場合はFalseになる
指定した言葉と合っていない場合は、結果はFalse
になります。
text = "Pythonは楽しい"
print(text.startswith("Java"))
print(text.endswith("面白い"))
False
False
このように、始まりや終わりが一致しなければFalse
になります。
4. 大文字と小文字は区別されるので注意
startswith()
やendswith()
は、大文字と小文字を区別します。たとえば「Python」と「python」は別の文字列として扱われます。
text = "Python"
print(text.startswith("python"))
False
このように、アルファベットの大文字・小文字には注意しましょう。
5. 小文字にそろえて比較するテクニック
すべて小文字にそろえてから比較すると、大文字小文字の違いを気にせず使えます。
text = "Python"
print(text.lower().startswith("python"))
True
lower()
メソッドを使うことで、文字列をすべて小文字に変換できます。
6. 複数の選択肢をまとめて調べる方法
startswith()
とendswith()
は、タプル(カンマで区切った複数の値)を渡すと、どれか1つでも一致すればTrue
を返します。
text = "hello world"
print(text.startswith(("hi", "hello")))
True
このように、複数の候補を一気にチェックできます。
7. endswith()も同じように複数チェック可能
endswith()
も同様に、タプルを使って複数の語尾に対応できます。
filename = "report.pdf"
print(filename.endswith((".pdf", ".docx", ".txt")))
True
ファイルの種類ごとに処理を分けたいときなどに便利です。
8. startswith()とendswith()の違いを整理
startswith()
:文字列が指定した文字で「始まっているか」チェックendswith()
:文字列が指定した文字で「終わっているか」チェック
どちらも結果はTrue
またはFalse
で返されるので、条件分岐にもよく使われます。
9. 応用:メールアドレスやURLの確認にも使える
endswith()
を使えば、メールアドレスのドメインチェックも簡単にできます。
email = "user@example.com"
if email.endswith("@example.com"):
print("社内メールです")
社内メールです
また、URLの先頭が「https://」で始まっているか確認したいときも、startswith()
が使えます。
10. 練習問題:文字列の始まりと終わりを判定してみよう
次の文字列が「こんにちは」で始まり、「さようなら」で終わっているかチェックしてみましょう。
text = "こんにちは。今日も一日お疲れさまでした。さようなら"
print(text.startswith("こんにちは"))
print(text.endswith("さようなら"))
True
True
このように、簡単に文章の構成をチェックできるのがstartswith()
とendswith()
の魅力です。