文字列に含まれる要素の種類を判定するメソッド
ある文字列 (str型オブジェクト) を構成する要素の種類(alphabetic、数字、空白など)を判定するメソッドの一覧です。
str.isalpha():alphabeticであれば真
str.isalpha() は文字列を構成するすべての要素が alphabetic であれば True を、それ以外は False を返します。alphabetic とは UCD (Unicode Character Database) で "Letter" と定義されている文字のことで、アルファベットや漢字、平仮名、カタカナなどを含みます。数字や算術記号などは alphabetic に含まれません。
# PYTHON_STR_ISALPHA
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():数字であれば真
str.isnumeric() は文字列を構成するすべての要素が数字であれば True を、それ以外の場合は False を返します。ここでいう数字とは Unicode における数値プロパティを持つ文字のことで、以下のサンプルに示すように、半角数字、全角数字、漢数字、ローマ数字などを含みます。
# PYTHON_STR_ISNUMERIC
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であれば真
str.isalnum() は文字列に含まれる要素がすべて alphabetic(アルファベット・漢字・平仮名など)もしくは数字(半角数字・全角数字・漢数字など)であれば True を、そうでなければ False を返します。
# PYTHON_STR_ISALNUM
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():数字であれば真
str.isdigit() は文字列を構成するすべての要素が数字である場合に True を返し、それ以外には False を返すメソッドです。ここでの数字とは Numeric_Type = Digit もしくは Numeric_Type = Decimal というプロパティ値をもつ文字のことで、半角数字や全角数字などを含みますが、ローマ数字や漢数字は含まれません。
# PYTHON_STR_ISDIGIT
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():大文字であれば真
str.isupper() は、文字列の中に小文字と大文字の区別のある文字が含まれていて、そのすべてが大文字であるときは True, そうでないときは False を返します。
# PYTHON_STR_ISUPPER
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():小文字であれば真
str.islower() は、文字列の中に小文字と大文字の区別のある文字が含まれていて、そのすべてが小文字であるときは True, そうでないときは False を返します。
# PYTHON_STR_ISLOWER
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():タイトルケースであれば真
str.istitle() はタイトルケースを判定するメソッドです。タイトルケースとは、"Data Analysis With Pandas" のように、文の先頭とスペース区切りに続く要素のみが大文字で、他の要素はすべて小文字となっているような文字列のことです。大文字と小文字の区別のない文字が混じっていても判定の対象外となります。
# PYTHON_STR_ISTITLE
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():空白であれば真
str.isspace() は文字列が空白のみで構成されている場合に True を、そうでない場合には False を返してきます。空白文字はUCD (Unicode Character Database) で "Other" もしくは "Separator" と定義されている文字のことで、半角スペースや全角スペースを含みます。
# PYTHON_STR_ISSPACE
# データなし
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
コメントを書く