Python 英字・数字 判別

文字列が英字か数字かを判別する方法を記載します。(数値ではなく文字列の数字です。)


英字判別

  • isalpha() : 文字列が英字(Letter文字)か判別。すべて英字の場合だけTrue 。
  • isalnum() : 文字列が英字(Letter文字)・数字(数値プロパティを持つ文字)か判別。すべて英字・数字の場合だけTrue 。
print('Apple'.isalpha())
>> True

print('étudiant'.isalpha()) #フランス語
>> True

print('りんご'.isalpha())
>> True

print('林檎'.isalpha())
>> True

print('リンゴ'.isalpha())
>> True

print('リンゴ012'.isalpha())
>> False

print('Apple'.isalnum())
>> True

print('étudiant'.isalnum()) #フランス語
>> True

print('りんご'.isalnum())
>> True

print('林檎'.isalnum())
>> True

print('リンゴ'.isalnum())
>> True

print('リンゴ012'.isalnum())
>> True

数字判別

  • isnumeric() : 文字列が数字か判別 (半角・全角・特殊数値・漢数字)。すべて数字の場合だけTrue。
  • isdigit() : 文字列が数字か判別 (半角・全角・特殊数値)。すべて数字の場合だけTrue。
  • isdecimal() : 文字列が数字か判別 (半角・全角)。すべて数字の場合だけTrue。

# 半角・全角・特殊数値・漢数字の判別
print('0123'.isnumeric())
>> True

print('013'.isnumeric())
>> True

print('零一二三'.isnumeric())
>> True

print('①②③'.isnumeric())
>> True

print('-123'.isnumeric()) # 負の数
>> False

# 半角・全角・特殊数値の判別
print('0123'.isdigit())
>> True

print('013'.isdigit())
>> True

print('①②③'.isdigit())
>> True

print('零一二三'.isdigit())
>> False

print('-123'.isdigit()) # 負の数
>> False

# 半角・全角の判別
print('0123'.isdecimal())
>> True

print('013'.isdecimal())
>> True

print('①②③'.isdecimal())
>> False

print('零一二三'.isdecimal())
>> False

print('-123'.isdecimal()) # 負の数
>> False

メリット・デメリット

関数呼び出しだけで、文字列を判別できるので簡素にコードを書くことができる。

しかし、各関数の判別条件を明確に理解していないと予期しない文字列を処理してしまう可能性があるため、正規表現を使った方が安全であることが多い。


関連記事