Pythonでブールメソッドを使用して文字列を検証する方法

Pythonの文字列は、文字のシーケンスです。一連の組み込みメソッドを使用して、文字列に対してさまざまな操作を実行できます。文字列ブールメソッドは、指定された文字列が特定のルールに従っているかどうかを確認するために使用されるこれらの組み込みメソッドのサブセットです。

この記事では、Python 3でいくつかの異なる文字列ブールメソッドを使用して、より効率的な開発者になる方法を学習します。

文字列に英数字のみが含まれているかどうかを確認する方法

isalnum()メソッドを使用して、指定された文字列が英数字のみで構成されているかどうかを確認できます。

このメソッドは、すべての文字が英数字の場合にTrueを返します。英数字は、(AZ)、(az)、および(0-9)です。文字列内のいずれかの文字が英数字でない場合、このメソッドはFalseを返します。

例:

 str1 = "WelcomeToMUO"
# This method will return "True" as all the characters are alphanumeric
checkstr1 = str1.isalnum()
print(checkstr1)
str2 = "Welcome To MUO"
# This method will return "False" as the string have 2 whitespaces which are not alphanumeric
checkstr2 = str2.isalnum()
print(checkstr2)
str3 = "#WelcomeToMUO"
# This method will return "False" as the string have a special character "#" which is not alphanumeric
checkstr3 = str3.isalnum()
print(checkstr3)
str4 = "274962472"
# This method will return "True" as all the characters are alphanumeric
checkstr4 = str4.isalnum()
print(checkstr4)
str5 = "Welcome2MUO"
# This method will return "True" as all the characters are alphanumeric
checkstr5 = str5.isalnum()
print(checkstr5)

出力:

 True
False
False
True
True

文字列がアルファベット文字のみで構成されているかどうかを確認する方法

isalpha()メソッドを使用して、指定された文字列が英字のみで構成されているかどうかを確認できます。

このメソッドは、すべての文字がアルファベットの場合にTrueを返します。アルファベット文字は(AZ)と(az)です。文字列内のいずれかの文字がアルファベットでない場合、このメソッドはFalseを返します。

例:

 str1 = "WelcomeToMUO"
# This method will return "True" as all the characters are alphabetic
checkstr1 = str1.isalpha()
print(checkstr1)
str2 = "Welcome To MUO"
# This method will return "False" as the string have 2 whitespaces which are not alphabetic
checkstr2 = str2.isalpha()
print(checkstr2)
str3 = "#WelcomeToMUO"
# This method will return "False" as the string have a special character "#" which is not alphabetic
checkstr3 = str3.isalpha()
print(checkstr3)
str4 = "274962472"
# This method will return "False" as all the characters are not alphabetic
checkstr4 = str4.isalpha()
print(checkstr4)
str5 = "Welcome2MUO"
# This method will return "False" as the string has a digit "2" which is not alphabetic
checkstr5 = str5.isalpha()
print(checkstr5)

出力:

 True
False
False
False
False

文字列内のすべての文字が10進数、数字、または数値であるかどうかを確認する方法

指定された文字列が、それぞれisdecimal()、isdigit()、およびisnumeric()メソッドを使用して、10進文字、数字、または数字のみで構成されているかどうかを確認できます。 3つの方法はすべて類似しているように見えますが、 Pythonのドキュメントには、3つの方法の違いが次のように記載されています。

  • isdecimal(): 10進文字は、基数10の数値を形成するために使用できる文字です(例:U + 0660、ARABIC-INDIC DIGIT ZERO)。正式には、小数点文字はUnicode一般カテゴリ「Nd」の文字です。
  • isdigit():数字には、10進文字と、互換性の上付き数字などの特別な処理が必要な数字が含まれます。これは、カローシュティー文字のように、基数10の数値を形成するために使用できない数字を対象としています。正式には、数字は、プロパティ値Numeric_Type = DigitまたはNumeric_Type = Decimalを持つ文字です。
  • isnumeric():数字には数字が含まれ、Unicode数値プロパティを持つすべての文字(U + 2155、VULGAR FRACTION ONE FIFTHなど)が含まれます。正式には、数字はプロパティ値Numeric_Type = Digit、Numeric_Type = DecimalまたはNumeric_Type = Numericを持つ文字です。

定義上、3つの方法の関係は次のように表すことができます。

 isdecimal() ⊆ isdigit() ⊆ isnumeric()

つまり、文字列が10進数の場合、数字と数値にもなります。

関連: Pythonでタプルを作成して使用する方法

例:

 # Digits
str1 = "8734947"
print("str1:")
print("str1.isdecimal() : ",str1.isdecimal())
print("str1.isdigit() : ",str1.isdigit())
print("str1.isnumeric() : ",str1.isnumeric())
# Fractional Value
str2 = "½"
print("str2:")
print("str2.isdecimal() : ",str2.isdecimal())
print("str2.isdigit() : ",str2.isdigit())
print("str2.isnumeric() : ",str2.isnumeric())
# Superscript Values
str3 = "⁰¹²³⁴⁵⁶⁷⁸⁹"
print("str3:")
print("str3.isdecimal() : ",str3.isdecimal())
print("str3.isdigit() : ",str3.isdigit())
print("str3.isnumeric() : ",str3.isnumeric())

出力:

 str1:
str1.isdecimal() : True
str1.isdigit() : True
str1.isnumeric() : True
str2:
str2.isdecimal() : False
str2.isdigit() : False
str2.isnumeric() : True
str3:
str3.isdecimal() : False
str3.isdigit() : True
str3.isnumeric() : True

文字列が有効な識別子であるかどうかを確認する方法

isidentifier()メソッドを使用して、指定された文字列が有効な識別子であるかどうかを確認できます。文字列が有効な識別子である場合、このメソッドはTrueを返します。それ以外の場合は、 Falseを返します。

文字列は、次の条件を満たす場合に有効な識別子であると言われます。

1.英数字および/またはアンダースコアのみが含まれます。

2.数字で始まらない。

3.空白は含まれていません。

関連: PythonでForループを使用する方法

例:

 str1 = "var1"
# This method will return "True" as the given string is a valid identifier
checkstr1 = str1.isidentifier()
print(checkstr1)
str2 = "var 1"
# This method will return "False" as the string contains a whitespace
checkstr2 = str2.isidentifier()
print(checkstr2)
str3 = "var1#"
# This method will return "False" as the string have a special character "#"
checkstr3 = str3.isidentifier()
print(checkstr3)
str4 = "_var1_"
# This method will return "True" as the given string is a valid identifier
checkstr4 = str4.isidentifier()
print(checkstr4)
str5 = "1var"
# This method will return "False" as the string starts with a digit "1"
checkstr5 = str5.isidentifier()
print(checkstr5)

出力:

 True
False
False
True
False

文字列内のすべての文字が大文字か小文字かを確認する方法

isupper()メソッドを使用して、指定された文字列が大文字のみで構成されているかどうかを確認できます。

同様に、 islower()メソッドを使用して、指定された文字列が小文字のみで構成されているかどうかを確認できます。文字列のすべての文字が小文字である場合、文字列のすべての文字は大文字とislowerは()メソッドが返すに該当する場合、isupper()メソッドはtrueを返します。

例:

 str1 = "MAKEUSEOF"
print("str1:")
print("str1.isupper() : ",str1.isupper())
print("str1.islower() : ",str1.islower())
str2 = "makeuseof"
print("str2:")
print("str2.isupper() : ",str2.isupper())
print("str2.islower() : ",str2.islower())
str3 = " "
print("str3:")
print("str3.isupper() : ",str3.isupper())
print("str3.islower() : ",str3.islower())

出力:

 str1:
str1.isupper() : True
str1.islower() : False
str2:
str2.isupper() : False
str2.islower() : True
str3:
str3.isupper() : False
str3.islower() : False

文字列内のすべての文字が空白であるかどうかを確認する方法

isspace()メソッドを使用して、指定された文字列が空白文字のみで構成されているかどうかを確認できます。

このメソッドは、すべての文字が空白の場合にTrueを返します。文字列内のいずれかの文字が空白でない場合、このメソッドはFalseを返します。

例:

 str1 = " "
# This method will return "True" as the given string contains only whitespace
checkstr1 = str1.isspace()
print(checkstr1)
str2 = " MUO "
# This method will return "False" as the string contains characters other than whitespace
checkstr2 = str2.isspace()
print(checkstr2)
str3 = " - "
# This method will return "False" as the string contains character other than whitespace
checkstr3 = str3.isspace()
print(checkstr3)

出力:

 True
False
False

テキストがタイトルスタイルのルールに従っているかどうかを確認する方法

istitle()メソッドを使用して、指定されたテキストがタイトルの規則に従っているかどうかを確認できます。

テキスト内のすべての単語が大文字で始まり、残りの単語が小文字である場合、テキストはタイトル規則に従っていると言われます。指定されたテキストがこのルールに従っている場合、istitle()メソッドはTrueを返し、そうでない場合はFalseを返します。

例:

 str1 = "Welcome To Muo"
# This method will return "True" as the given string follows the rules of a title
checkstr1 = str1.istitle()
print(checkstr1)
str2 = "Welcome to Muo"
# This method will return "False" as the second word ("to") doesn't starts with a capital case character
checkstr2 = str2.istitle()
print(checkstr2)
str3 = "welcome to muo"
# This method will return "False" as all the words starts with a lowercase character
checkstr3 = str3.istitle()
print(checkstr3)

出力:

 True
False
False

文字列を使用してプログラミングを楽しくする

文字列は、プログラムからそのユーザーに情報を伝達するときに非常に役立ちます。ただし、ブール値検証を使用することは、Python文字列を試す唯一の方法ではありません。

文字列を操作することで、退屈なテキストを興味深いテキストに変換できます。クリエイティブになってプログラミングを楽しくしましょう!