文字列の中の文字が英字を表す文字かどうかを判定する(isascii, isalpha, isalnum)

広告
eyecatch

文字列で用意されているメソッドの中で、文字列の中に含まれる文字が英字を表す文字かどうか判定するのに使用できるメソッドの使い方について解説します。

すべての文字がASCII文字かどうかを判定する(isasciiメソッド)

isascii メソッドは文字列中のすべての文字が ASCII 文字の場合、または空文字の場合に真を返します。使い方は次の通りです。

str.isascii()

簡単なサンプルで試してみます。

>>> "Hello".isascii()
True
>>> "8052".isascii()
True
>>> "関東地方".isascii()
False
>>>

ASCII コードにはカンマ(,)、ハイフン(-)、ドット(.)も含まれるため、これらの文字が含まれても真となります。

>>> "-8052".isascii()
True
>>> "-3.1415".isascii()
True
>>> "2,334,500".isascii()
True
>>>

isascii メソッドは空文字の場合も真となります。

>>> "".isascii()
True
>>>

すべての文字が英字の文字かどうかを判定する(isalphaメソッド)

isalpha メソッドは文字列中のすべての文字が英字で、かつ 1 文字以上ある場合に真を返します。使い方は次の通りです。

str.isalpha()

簡単なサンプルで試してみます。

>>> "Hello".isalpha()
True
>>> "3345".isalpha()
False
>>>

英字とは公式サイトでは「英字は、Unicode 文字データベースで "Letter" として定義されているもので、すなわち、一般カテゴリプロパティ "Lm"、 "Lt"、 "Lu"、 "Ll"、 "Lo" のいずれかをもつものです。なお、これは Unicode 標準で定義されている "Alphabetic" プロパティとは異なるものです。」と説明されています。半角英字は含まれますが半角の数字が含まれていると偽となります。

また英字というとアルファベットのイメージがありますが、全角の文字も含まれます。ただし全角の文字であっても数字を表す文字は偽となります(漢数字は真となります)。

>>> "京都".isalpha()
True
>>> "Apple".isalpha()
True
>>> "765".isalpha()
False
>>> "七五三".isalpha()
True
>>>

空文字の場合は偽となります。

>>> "".isalpha()
False
>>>

すべての文字が英数字の文字どうかを判定する(isalnumメソッド)

isalnum メソッドは文字列中のすべての文字が英数字で使われる文字で、かつ 1 文字以上ある場合に真を返します。使い方は次の通りです。

str.isalnum()

簡単なサンプルで試してみます。

>>> "100years".isalnum()
True
>>> "東京都".isalnum()
True
>>> "Orange7".isalnum()
True
>>>

文字が英数字かどうかは先に解説した isalpha メソッド、 isdecimal メソッド、 isdigit メソッド、 isnumericメソッドのどれかが真を返す文字です。( isdecimal メソッド、 isdigit メソッド、 isnumericメソッドは文字が数字かどうかを判定するメソッドです。詳しくは「文字列の中の文字が数を表す文字かどうかを判定する」を参照してください)。

空文字の場合は偽となります。

>>> "".isalnum()
False
>>>

-- --

文字列で用意されているメソッドの中で、文字列の中に含まれる文字が英字を表す文字かどうか判定するのに使用できるメソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。