Pythonで文字列が数字のみで構成されているかどうかを判定する方法
Pythonの文字列(String)クラスには isdigit() というメソッドが用意されています。このメソッドは、文字列に少なくとも1文字以上が含まれ、そのすべてが数字である場合に True を返し、そうでない場合には False を返します。
isdigit() メソッドの使用例
print("12345".isdigit())
print("12345a".isdigit())
実行結果
True False
上記の例では、純粋な数字のみの文字列「12345」は True、アルファベットが混ざった「12345a」は False と判定されています。
なお、isdigit() はマイナス記号や小数点も数字として扱わないため、「-123」や「12.34」のような文字列に対しては False を返す点に注意してください。
正規表現を使って判定する方法
同じ結果は正規表現でも得られます。数字のみにマッチさせたい場合は、re.match(regex, string) を使い、パターンとして「^[0-9]+$」を指定します。
コード例
import re
print(bool(re.match('^[0-9]+$', '123abc')))
print(bool(re.match('^[0-9]+$', '123')))
実行結果
False True
re.match() はマッチ結果をオブジェクトとして返します。マッチしたかどうかを確認するには、戻り値を bool() 関数で真偽値に変換して判定する必要があります。
-
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