Pythonで文字列が大文字のみで構成されているか確認する方法
Pythonでは、文字列が大文字のみで構成されているかどうかを確認する方法は主に2つあります。1つ目は組み込みメソッド isupper() を使う方法、2つ目は正規表現(regex)を使う方法です。
方法1:isupper() メソッドを使う
isupper() は、文字列内のすべての英字が大文字であり、かつ少なくとも1つの英字が含まれている場合に True を返します。数字や記号が混在していても、英字がすべて大文字であれば True になります。
例
print('Hello world'.isupper())
print('HELLO'.isupper())
出力
False True
最初の例では小文字が含まれているため False、2つ目の例はすべて大文字なので True が返されています。
方法2:正規表現を使う
同じ結果は正規表現でも得られます。大文字のみにマッチさせるには、re.match() にパターン "^[A-Z]+$" を指定して呼び出します。このパターンは「文字列の先頭(^)から末尾($)まで、すべて大文字のアルファベット(A-Z)で構成されている」ことを意味します。
例
import re
print(bool(re.match('^[A-Z]+$', '123aAbc')))
print(bool(re.match('^[A-Z]+$', 'ABC')))
出力
False True
re.match() の戻り値はマッチオブジェクトまたは None なので、bool() で囲むことで真偽値として扱えます。
注意点
isupper() を使う場合、空文字列や英字を1つも含まない文字列(例:'123')に対しては False が返される点に注意してください。一方、正規表現のパターンを ^[A-Z]*$ に変更すると、空文字列にもマッチするようになります。用途に応じて適切な方法を選びましょう。
-
Pythonで文字列に英字・数字・アンダースコア・ダッシュのみが含まれているか確認する方法
Pythonで文字列が英字・数字・アンダースコア(_)・ダッシュ(-)のみで構成されているかどうかを判定したい場合、正規表現を使うのが最も一般的で簡潔な方法です。パターン「^[A-Za-z0-9_-]*$」を利用することで、許可された文字以外が含まれていないかを簡単にチェックできます。 正規表現を使った方法 標準ライブラリのreモジュールにあるmatch()関数と、上記の正規表現パターンを組み合わせます。文字列全体がパターンに一致すればTrue、許可されていない文字が1つでも含まれていればFalseが返されます。 import re print(bool(re.match(^[A-Za-z0
-
Pythonで変数の存在を確認する方法|locals()・globals()・hasattr()の使い方
Pythonでは、変数が存在するかどうかを確認するために、組み込み関数の locals()、globals()、そして hasattr() を活用します。それぞれの役割と具体的な使い方を、サンプルコードと実行結果をもとに解説します。 変数の存在確認に使える3つの方法 locals():現在のローカルスコープ(関数やメソッド内)で定義されている変数を辞書形式で返します。 globals():モジュール全体(グローバルスコープ)で定義されている変数を辞書形式で返します。 hasattr():オブジェクトが指定した名前の属性を持っているかどうかを真偽値で判定します。 サンプルコード x = 10