『Python数値計算ノート』ではアフィリエイトプログラムを利用して商品を紹介しています。

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

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

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

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

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

# PYTHON_STR_ISALPHA

# 文字列の要素がすべてalphabeticであるかを判定
"Python".isalpha()  # True
"Python3".isalpha()  # False
"Pythonで人工知能を開発する".isalpha()  # True
"a = b".isalpha()  # False

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

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

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

# PYTHON_STR_ISNUMERIC

# 要素がすべて数字であるかを判定
"123".isnumeric()  # True
"123".isnumeric()  # True
"ⅠⅡⅢ".isnumeric()  # True
"一二三".isnumeric()  # True

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

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

# PYTHON_STR_ISALNUM

# 要素がすべてalphabeticまたは数字であるかを判定
"Python".isalnum()  # True
"Python3".isalnum()  # True
"Pythonで人工知能を開発する".isalnum()  # True
"a = 100".isalnum()  # False

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

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

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

# PYTHON_STR_ISDIGIT

# 要素がすべて数字であるかを判定
"123".isdigit()  # True
"123".isdigit()  # True
"ⅠⅡⅢ".isdigit()  # False
"一二三".isdigit()  # False

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

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

# PYTHON_STR_ISUPPER

# 要素がすべて大文字であるかを判定
"DATAFRAME".isupper()  # True
"DataFrame".isupper()  # False
"DATAFRAMEの作成".isupper()  # True
"データフレーム".isupper() False

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

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

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

# PYTHON_STR_ISLOWER

# 要素がすべて小文字であるかを判定
"Anaconda".islower()  # False
"anaconda".islower()  # True
"minicondaというのもあります".islower()  # True
"アナコンダ".islower()  # True

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

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

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

# PYTHON_STR_ISTITLE

# 要素がタイトルケースになっているかを判定
"Data Analysis With Pandas".istitle()  # True
"Data Analysis with Pandas".istitle()  # False
"Data Analysis With Pandas (Pandasによるデータ分析)".istitle()  # True
"A = B = 100".istitle()  # False

“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

# 要素がすべてスペースかどうかを判定
"".isspace()  # False
" ".isspace()  # True

コメント