文字列に含まれる要素の種類を判定

文字列に含まれる要素の種類を判定

文字列に含まれる要素の種類を判定するメソッド

 ある文字列 (str型オブジェクト) を構成する要素の種類(alphabetic、数字、空白など)を判定するメソッドの一覧です。

str.isalpha():alphabeticであれば真

 isalpha()メソッド は文字列を構成するすべての要素が alphabetic であれば True を、それ以外は False を返します。alphabetic とは UCD (Unicode Character Database) で "Letter" と定義されている文字のことで、アルファベットや漢字、平仮名、カタカナなどを含みます。数字や算術記号などは alphabetic に含まれません。

# リストSIS_01

my_str_1 = "Python"
my_str_2 = "Python3"
my_str_3 = "Pythonで人工知能を開発する"
my_str_4 = "a = b"

# 要素がすべて alphabetic であるかを判定
w = my_str_1.isalpha()
x = my_str_2.isalpha()
y = my_str_3.isalpha()
z = my_str_4.isalpha()

print(w, x, y, z)
True False True False

 上のサンプルコードにおいて、"Python" はすべてアルファベットなので True ですが、"Python3" には数字が含まれているので False です。"Pythonで人工知能を開発する" はアルファベット・漢字・平仮名で構成されているので (すべて alphabetic なので) True です。"a = b" は "=" が alphabetic ではないので、False となります。
 

str.isnumeric():数字であれば真

 isnumeric()メソッド は文字列を構成するすべての要素が数字であれば True を、それ以外の場合は False を返します。ここでいう数字とは Unicode における数値プロパティを持つ文字のことで、以下のサンプルに示すように、半角数字、全角数字、漢数字、ローマ数字などを含みます。

# リストSIS_02

my_num_1 = "123"
my_num_2 = "123"
my_num_3 = "ⅠⅡⅢ"
my_num_4 = "一二三"

# 要素がすべて数字であるかを判定
w = my_num_1.isnumeric()
x = my_num_2.isnumeric()
y = my_num_3.isnumeric()
z = my_num_4.isnumeric()

print(w, x, y, z)
True True True True

 

str.isalnum():alphabeticであれば真

 isalnum()メソッド は文字列に含まれる要素がすべて alphabetic(アルファベット・漢字・平仮名など)もしくは数字(半角数字・全角数字・漢数字など)であれば True を、そうでなければ False を返します。

# リストSIS_03

my_str_1 = "Python"
my_str_2 = "Python3"
my_str_3 = "Pythonで人工知能を開発する"
my_str_4 = "a = 100"

# 要素がすべて alphabetic または数字であるかを判定
w = my_str_1.isalnum()
x = my_str_2.isalnum()
y = my_str_3.isalnum()
z = my_str_4.isalnum()

print(w, x, y, z)
True True True False

 上のサンプルにおいて、"a = 100" という文字列には "=" という、alphabetic でも数字でもない要素が含まれているので、False が返っています。
 

str.isdigit():数字であれば真

 isdigit()メソッド は文字列を構成するすべての要素が数字である場合に True を返し、それ以外には False を返します。ここでの数字とは Numeric_Type = Digit もしくは Numeric_Type = Decimal というプロパティ値をもつ文字のことで、半角数字や全角数字などを含みますが、ローマ数字や漢数字は含まれません。

# リストSIS_04

my_num_1 = "123"
my_num_2 = "123"
my_num_3 = "ⅠⅡⅢ"
my_num_4 = "一二三"

# 要素がすべて数字であるかを判定
w = my_num_1.isdigit()
x = my_num_2.isdigit()
y = my_num_3.isdigit()
z = my_num_3.isdigit()

print(w, x, y, z)
True True False False

 

str.isupper():大文字であれば真

 isupper()メソッド は、文字列の中に小文字と大文字の区別のある文字が含まれていて、そのすべてが大文字であるときは True, そうでないときは False を返します。

# リストSIS_05

my_str_1 = "DATAFRAME"
my_str_2 = "DataFrame"
my_str_3 = "DATAFRAMEの作成"
my_str_4 = "データフレーム"

# 要素がすべて大文字であるかを判定
w = my_str_1.isupper()
x = my_str_2.isupper()
y = my_str_3.isupper()
z = my_str_4.isupper()

print(w, x, y, z)
True False True False

 "DATAFRAME" はすべて大文字なので True ですが、"DataFrame" には小文字が混じっているので False です。"DATAFRAMEの作成" はアルファベット、漢字、平仮名で構成されていますが、大文字と小文字の区別があるのはアルファベットだけなので、"DATAFRAME" のみが判定対象となります。"DATAFRAME" はすべて大文字なので True が返ります。"データフレーム" には大文字と小文字を区別する文字が1つも含まれていないので False が返ります。
 

str.islower():小文字であれば真

 islower()メソッド は、文字列の中に小文字と大文字の区別のある文字が含まれていて、そのすべてが小文字であるときは True, そうでないときは False を返します。

# リストSIS_06

my_str_1 = "Anaconda"
my_str_2 = "anaconda"
my_str_3 = "minicondaというのもあります"
my_str_4 = "アナコンダ"

# 要素がすべて小文字であるかを判定
w = my_str_1.islower()
x = my_str_2.islower()
y = my_str_3.islower()
z = my_str_4.islower()

print(w, x, y, z)
False True True False

 "Anaconda" には大文字が含まれているので False です。"anaconda" はすべて小文字なので True が返ります。"minicondaというのもあります" はアルファベット、漢字、平仮名で構成されていますが、大文字と小文字の区別があるのはアルファベットだけなので、"miniconda" のみが判定対象となります。"miniconda" を構成する要素はすべて小文字なので True が返ります。"アナコンダ" には大文字と小文字を区別する文字が1つも含まれていないので False が返ります。
 

str.istitle():タイトルケースであれば真

 istitle() はタイトルケースを判定するメソッドです。タイトルケースとは、"Data Analysis With Pandas" のように、文の先頭とスペース区切りに続く要素のみが大文字で、他の要素はすべて小文字となっているような文字列のことです。大文字と小文字の区別のない文字が混じっていても判定の対象外となります。

# リストSIS_07

my_str_1 = "Data Analysis With Pandas"
my_str_2 = "Data Analysis with Pandas"
my_str_3 = "Data Analysis With Pandas (Pandasによるデータ分析)"
my_str_4 = "A = B = 100"

# 要素がタイトルケースになっているかを判定
w = my_str_1.istitle()
x = my_str_2.istitle()
y = my_str_3.istitle()
z = my_str_3.istitle()

print(w, x, y, z)
True False True True

 "Data Analysis With Pandas" は単語の頭がすべて大文字になっていて、それ以外は小文字なのでタイトルケースであると判定されます。"Data Analysis with Pandas" は "wiht" が小文字なので、False となります。"Data Analysis With Pandas (Pandasによるデータ分析)" は "(" や漢字・平仮名・カタカナを除く部分はタイトルケースとなっているので True です。
 

str.isspace():空白であれば真

 isspace()メソッド は文字列が空白のみで構成されている場合に True を、そうでない場合には False を返してきます。空白文字はUCD (Unicode Character Database) で "Other" もしくは "Separator" と定義されている文字のことで、半角スペースや全角スペースを含みます。

# リストSIS_08

# データなし
my_str_1 = ""

# 半角スペース×3
my_str_2 = "   "

# 全角スペース×1
my_str_3 = " "

# 要素がすべてスペースかどうかを判定
x = my_str_1.isspace()
y = my_str_2.isspace()
z = my_str_3.isspace()

print(x, y, z)
False True True