Pythonで文字列がアルファベットかどうか判定(isalpha, isalnum)
この記事では、Pythonの文字列がアルファベット文字のみで構成されているか、あるいは英数字で構成されているかを判定する`isalpha()`メソッドと`isalnum()`メソッドについて解説します。それぞれのメソッドの使い分けや注意点についても説明します。
目次
isalpha()メソッド:アルファベット文字のみの判定
`isalpha()`メソッドは、文字列がアルファベット文字(a-z, A-Z)のみで構成されているかを判定します。数字、記号、スペースなどが含まれている場合は`False`を返します。
string1 = "hello"
string2 = "Hello World"
string3 = "123"
string4 = "hello123"
print(string1.isalpha()) # True
print(string2.isalpha()) # False
print(string3.isalpha()) # False
print(string4.isalpha()) # False
空文字列に対しては`False`を返します。
isalnum()メソッド:英数字のみの判定
`isalnum()`メソッドは、文字列が英数字(a-z, A-Z, 0-9)のみで構成されているかを判定します。記号やスペースが含まれている場合は`False`を返します。
string1 = "hello"
string2 = "Hello123"
string3 = "123"
string4 = "hello123!"
print(string1.isalnum()) # True
print(string2.isalnum()) # True
print(string3.isalnum()) # True
print(string4.isalnum()) # False
空文字列に対しては`False`を返します。
使用方法と例
これらのメソッドは文字列オブジェクトに対して直接呼び出すことができます。戻り値は`True`または`False`のブール値です。
text = input("文字列を入力してください: ")
if text.isalpha():
print("文字列はアルファベットのみで構成されています")
elif text.isalnum():
print("文字列は英数字のみで構成されています")
else:
print("文字列にはアルファベットと数字以外の文字が含まれています")
ユーザー入力を受け取り、`isalpha()`と`isalnum()`メソッドを使って文字列を判定する例です。
注意点
これらのメソッドはUnicode文字をサポートしています。ただし、すべてのUnicode文字が`isalpha()`や`isalnum()`で正しく判定されるとは限りません。特定のUnicode文字の判定には、より高度なライブラリが必要となる場合があります。
- 空文字列は`isalpha()`と`isalnum()`の両方で`False`を返します。
- 大文字と小文字は区別されます。
- 数字、記号、スペースなどの非英数字文字が含まれている場合、`isalpha()`と`isalnum()`は`False`を返します。
関連記事
- Pythonで文字列を検索(find, rfind, index, rindex)
- Pythonで文字列の先頭と末尾が特定の文字列か判定(startswith, endswith)
- Pythonで文字列が数値かどうか判定(isdigit, isdecimal, isnumeric)
- Pythonで文字列をスライスで部分抽出
- Pythonで文字列の出現回数をカウント(count)
- Pythonで文字列を置換(replace, translate, re.sub)
- Pythonで文字列の大文字・小文字を変換(upper, lower, capitalize, title, swapcase)
- Pythonで文字列の先頭・末尾の空白を削除(strip, lstrip, rstrip)
- Pythonで文字列を結合(join, +演算子)
- Pythonで文字列をフォーマット(format, f文字列 (Python 3.6以降), %演算子)