Pythonで文字列の確認・判定をマスターする方法: str型メソッド徹底ガイド
Pythonは、その柔軟性と直感的な文法で人気のあるプログラミング言語です。特に、文字列操作はPythonの強力な機能の一つです。
この記事では、Pythonのstr型に組み込まれた便利なメソッドを使用して、文字列データが特定の条件を満たしているかどうかを確認する方法について学びます。
はじめに: Pythonのstr型メソッドとは
Pythonのstr型メソッドは、文字列に対するさまざまな操作を提供します。これらのメソッドを使用することで、文字列が特定のパターンや基準に合致するかどうかをプログラム的に確認することができます。
例えば、ある文字列が特定のサブストリングで始まるか、または終わるかを確認したり、文字列が数字のみ、またはアルファベットのみで構成されているかどうかをチェックすることができます。
KindleUnlimited会員であれば、全ての本をご覧頂けます。 リストとラムダ式を理解すれば、Pythonプログラミングの世界が変わる 第1版
1.endswithメソッド: 文字列が特定の文字で終わっているかチェック
「endswith」メソッドを使用すると、文字列が指定したサフィックスで終わっているかどうかを判断することができます。このメソッドはブール値(TrueまたはFalse)を返します。
使い方は非常に簡単で、endswithメソッドに引数として確認したいサフィックスを指定するだけです。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import sys def main(): # 文字列の定義 my_string = "hello, world!" # endswithメソッドを使って、文字列が"!"で終わるかチェック if my_string.endswith("!"): print("文字列は感嘆符で終わっています。") else: print("文字列は感嘆符で終わっていません。") # main関数を呼び出す if __name__ == "__main__": main() |
出力結果
文字列は感嘆符で終わっています。
このコード例では、「hello, world!」という文字列が"!"で終わるかどうかを確認しています。結果はTrueなので、「文字列は感嘆符で終わっています。」と出力されます。
endswithメソッドは、ファイルの拡張子やURLの末尾など、特定のパターンで終わる文字列を検証する際に非常に便利です。
startswithメソッド:文字列が指定した文字/文字列で始まるかを確認
「startswith」メソッドは、文字列が特定の文字やサブストリングで始まるかどうかを確認するために使用されます。このメソッドは、文字列が指定されたプレフィックスで始まる場合、Trueを返し、そうでない場合はFalseを返します。加えて、検索を文字列の特定の位置から開始するためのパラメータも取ることができます。
ソースコード例
1 2 3 4 5 6 |
text = "pythonprogramming" print(text.startswith("python")) # True print(text.startswith("programming")) # False # 開始位置を指定して検索 print(text.startswith("programming", 6)) # True |
出力結果
True
False
True
3. isalnumメソッド:文字列が全て英数字であるかを確認
「isalnum」メソッドは、指定された文字列がアルファベット文字または数字で構成されているかどうかを判断します。このメソッドがTrueを返すのは、文字列が少なくとも一つの文字を含み、全ての文字がアルファベットまたは数字である場合です。
ポイント: 空白文字、記号、句読点などはアルファベット文字または数字には含まれませんので、これらの文字を含む文字列はFalseを返します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import sys class Program: def main(): # アルファベット文字と数字のみを含む文字列 string1 = "Python3" # 空白文字を含む文字列 string2 = "Python 3" print(string1.isalnum()) # Trueが出力される print(string2.isalnum()) # Falseが出力される if __name__ == "__main__": Program.main() |
出力結果
True
False
この例では、"Python3"はアルファベットと数字のみで構成されているため、isalnum()はTrueを返します。一方、"Python 3"には空白文字が含まれているため、isalnum()はFalseを返します。
4. isalphaメソッド:文字列が全てアルファベットであるかを確認
「isalpha」メソッドは、指定された文字列がアルファベット文字だけで構成されているかどうかをチェックします。これは、文字列がアルファベット文字のみで、かつ空白、数字、句読点などを含まない場合にTrueを返します。
ポイント: 文字列がアルファベット文字のみで構成されている場合、この関数はTrueを返しますが、文字列にアルファベット以外の文字が含まれている場合や、文字列が空の場合はFalseを返します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
class Program: def main(): # アルファベットのみを含む文字列 string1 = "Python" # 数字を含む文字列 string2 = "Python3" print(string1.isalpha()) # Trueが出力される print(string2.isalpha()) # Falseが出力される if __name__ == "__main__": Program.main() |
出力結果
True
False
この例では、"Python"はアルファベット文字のみで構成されているため、isalpha()はTrueを返します。しかし、"Python3"には数字が含まれているため、isalpha()はFalseを返します。
5.isdigitメソッド:文字列が全て数字であるかを確認
「isdigit」メソッドは、文字列が数字のみで構成されているかどうかを判定します。このメソッドは、文字列が一つ以上の数字を含み、その他の文字(アルファベット文字、空白、記号など)を一切含まない場合にTrueを返します。
ポイント: 文字列が空の場合、または一つでも数字以外の文字を含む場合、isdigitメソッドはFalseを返します。数字のみで構成される文字列のみがTrueと評価されます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
class Program: def main(): # 数字のみを含む文字列 string1 = "123456" # アルファベット文字を含む文字列 string2 = "Python3" print(string1.isdigit()) # Trueが出力される print(string2.isdigit()) # Falseが出力される if __name__ == "__main__": Program.main() |
出力結果
True
False
この例では、"123456"は数字のみで構成されているため、isdigit()はTrueを返します。しかし、"Python3"はアルファベット文字を含んでいるため、isdigit()はFalseを返します。
6. isdecimal:文字列が全て十進数字であるかを確認
「isdecimal」メソッドは、文字列が十進数数字のみで構成されているかどうかをチェックします。このメソッドは、文字列が十進数数字のみで、その他の文字(アルファベット、空白、記号など)を含まない場合にTrueを返します。通常、isdigitと非常に似ていますが、Unicode文字列に対してさらに厳格です。
ポイント: 文字列に十進数数字以外のものが含まれている場合や、文字列が空の場合はFalseを返します。また、全角数字やローマ数字など、特定のUnicode文字は十進数数字とはみなされません。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
class Program: def main(): # 十進数数字のみを含む文字列 string1 = "2023" # 全角数字を含む文字列 string2 = "2023" print(string1.isdecimal()) # Trueが出力される print(string2.isdecimal()) # Falseが出力される if __name__ == "__main__": Program.main() |
出力結果
True
False
この例では、"2023"は十進数数字のみで構成されているため、isdecimal()はTrueを返します。しかし、"2023"は全角数字を含んでいるため、isdecimal()はFalseを返します。
7. isalphaメソッド:文字列が全てアルファベットであるかを確認
「isalpha」メソッドは、文字列がアルファベット文字のみで構成されているかどうかをチェックします。このメソッドは、文字列がアルファベット文字(大文字または小文字)のみで、数字や空白、記号、その他の文字を含まない場合にTrueを返します。
ポイント: 文字列が空の場合、または一つでもアルファベット以外の文字を含む場合、isalphaメソッドはFalseを返します。アルファベット文字のみがTrueと評価されます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
class Program: def main(): # アルファベットのみを含む文字列 string1 = "Python" # 数字を含む文字列 string2 = "Python3" print(string1.isalpha()) # Trueが出力される print(string2.isalpha()) # Falseが出力される if __name__ == "__main__": Program.main() |
出力結果
True
False
この例では、"Python"はアルファベット文字のみで構成されているため、isalpha()はTrueを返します。しかし、"Python3"は数字を含んでいるため、isalpha()はFalseを返します。
8. isalnumメソッド:文字列が全て英数字であるかを確認
「isalnum」メソッドは、文字列がアルファベット文字または数字のみで構成されているかどうかを確認します。このメソッドは、文字列にアルファベット文字(大文字または小文字)や数字が含まれており、空白、記号、その他の特殊文字を含まない場合にTrueを返します。
ポイント: 文字列が空の場合、またはアルファベット文字や数字以外のものを含む場合は、isalnumメソッドはFalseを返します。アルファベット文字または数字のみで構成される文字列がTrueと評価されます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
class Program: def main(): # アルファベットと数字を含む文字列 string1 = "Python3" # 特殊文字を含む文字列 string2 = "Python-3" print(string1.isalnum()) # Trueが出力される print(string2.isalnum()) # Falseが出力される if __name__ == "__main__": Program.main() |
出力結果
True
False
この例では、"Python3"はアルファベット文字と数字のみで構成されているため、isalnum()はTrueを返します。しかし、"Python-3"は特殊文字(ハイフン)を含んでいるため、isalnum()はFalseを返します。
9. islowerメソッド:文字列のアルファベットが全て小文字であるかを確認
「islower」メソッドは、文字列のアルファベットがすべて小文字であるかどうかをチェックします。もし文字列のアルファベット全てが小文字であれば、このメソッドはTrueを返します。
ソースコード例
1 2 3 4 |
string1 = "python" string2 = "Python" print(string1.islower()) # True print(string2.islower()) # False |
出力結果
True
False
10. isupperメソッド:文字列のアルファベットが全て大文字であるかを確認
「isupper」メソッドは、文字列のアルファベットがすべて大文字であるかどうかを確認します。もし文字列のアルファベット全てが大文字であれば、このメソッドはTrueを返します。
ソースコード例
1 2 3 4 |
string1 = "PYTHON" string2 = "Python" print(string1.isupper()) # True print(string2.isupper()) # False |
出力結果
True
False
11. isspaceメソッド:文字列が全て空白文字であるかを確認
「isspace」メソッドは、文字列が全て空白文字であるかどうかを確認します。空白、タブ、改行など、すべての文字が空白文字の場合にTrueを返します。
ソースコード例
1 2 3 4 |
string1 = " " string2 = " Python " print(string1.isspace()) # True print(string2.isspace()) # False |
出力結果
True
False
12. istitleメソッド:文字列がタイトルケース(各単語の頭文字だけが大文字)であるかを確認
「istitle」メソッドは、文字列がタイトルケース(各単語の頭文字だけが大文字)であるかどうかを確認します。この条件を満たす場合、Trueを返します。
ソースコード例
1 2 3 4 |
string1 = "Hello World" string2 = "Hello world" print(string1.istitle()) # True print(string2.istitle()) # False |
出力結果
True
False
13. isnumericメソッド:文字列が全て数値(数字といくつかの数値記号)であるかを確認
「isnumeric」メソッドは、文字列が全て数値(数字といくつかの数値記号)であるかを確認します。この条件を満たす場合、Trueを返します。
ソースコード例
1 2 3 4 |
string1 = "12345" string2 = "123a45" print(string1.isnumeric()) # True print(string2.isnumeric()) # False |
出力結果
True
False
14. isprintableメソッド:文字列が印刷可能かどうかを確認
「isprintable」メソッドは、文字列が印刷可能な文字だけで構成されているかどうかを確認します。改行やタブなど、印刷不可能な特殊文字を含む場合、このメソッドはFalseを返します。
ソースコード例
1 2 3 4 |
string1 = "Hello" string2 = "Hello\nWorld" print(string1.isprintable()) # True print(string2.isprintable()) # False |
出力結果
True
False
まとめ
今回、私たちは多くのstr型メソッドについて学びましたが、これらのメソッドはプログラミングにおいて非常に重要です。特に、テキストデータの処理や解析においては、これらのメソッドの理解が不可欠です。
Pythonの文字列メソッドは、コードをシンプルに保ちながら、強力な文字列操作機能を提供します。それらは、データバリデーション、クリーニング、パースなど、多岐にわたる用途に使用されています。
これらのメソッドを効果的に使用することで、コードの可読性とメンテナンス性が向上し、より効率的なコーディングが可能になります。今回学んだメソッドをぜひ日々のプログラミング作業に取り入れ、その効果を実感してください。
これらの基本的なメソッドをマスターすることで、Pythonでのプログラミングがより簡単で効果的なものになるでしょう。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!