Pythonで文字列が数字か判定する方法4選

Pythonで文字列が数字かどうかを判定する方法はいくつかあります。以下にいくつかの方法を示します。

  1. isnumeric() メソッドを使用する方法:
    text = "12345"
    if text.isnumeric():
        print("文字列は数字です。")
    else:
        print("文字列は数字ではありません。")
    

    isnumeric() メソッドは、文字列が数字の場合に True を返し、それ以外の場合に False を返します。

  2. isdigit() メソッドを使用する方法:
    text = "12345"
    if text.isdigit():
        print("文字列は数字です。")
    else:
        print("文字列は数字ではありません。")
    

    isdigit() メソッドも isnumeric() と同様に、文字列が数字の場合に True を返します。

  3. try-exceptブロックを使用する方法:
    text = "12345"
    try:
        num = int(text)
        print("文字列は数字です。")
    except ValueError:
        print("文字列は数字ではありません。")
    

    この方法では、文字列を整数に変換しようとし、エラーが発生した場合には数字でないと判定します。

  4. 正規表現を使用する方法:
    import re
    
    pattern = "^[0-9]+$"
    text = "12345"
    
    if re.match(pattern, text):
        print("文字列は数字です。")
    else:
        print("文字列は数字ではありません。")
    

    この方法では正規表現を使用して、文字列が数字のパターンに一致するかどうかを確認します。

どの方法を選択するかは、特定のケースに依存します。通常、isnumeric()isdigit() メソッドを使用することが最もシンプルで効果的ですが、文字列が整数値と浮動小数点数の両方を許容する必要がある場合は正規表現が適しているかもしれません。