Python で文字列が整数かどうかをチェックする

Muhammad Waiz Khan 2023年1月30日
  1. Python で文字列が整数かどうかを調べるには str.isdigit() メソッドを使用する
  2. Python で文字列が整数かどうかをチェックするには try ... except 例外処理を使用する
  3. Python で正規表現を使って文字列が整数かどうかを調べる
Python で文字列が整数かどうかをチェックする

このチュートリアルでは、Python で文字列が整数かどうかをチェックする方法を説明します。文字列が整数であるということは、文字列に格納されている値が整数を表しているということです。これをチェックする方法は複数あり、このチュートリアルではコード例を見ながら説明します。

Python で文字列が整数かどうかを調べるには str.isdigit() メソッドを使用する

Python で文字列が整数かどうかを調べる最も効率的な方法は str.isdigit() メソッドを使用することです。

str.isdigit() メソッドは文字列が整数であれば True を返し、そうでなければ False を返します。以下のコード例はその使い方を示しています。

def if_integer(string):

    if string[0] == ("-", "+"):
        return string[1:].isdigit()

    else:
        return string.isdigit()


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

出力:

True
True
False

上の例では、整数の符号 +- が文字列に含まれているかどうかにも注意を払っています。最初の文字列が + または - であれば、残りの文字列が整数かどうかをチェックします。

Python で文字列が整数かどうかをチェックするには try ... except 例外処理を使用する

もう一つの方法は、int() 関数で try ... except 例外処理を利用することです。文字列が整数であれば True を、そうでなければ False を返します。以下のコード例は、このメソッドを実装する方法を示しています。

def if_integer(string):
    try:
        int(string)
        return True
    except ValueError:
        return False


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

出力:

True
True
False

Python で正規表現を使って文字列が整数かどうかを調べる

使用できる別の興味深いアプローチは、正規表現です。整数を表す正規表現は [+-]?\d+$ になります。ここで、[+-]?+- 記号がオプションであることを意味し、\d+ は 1つ以上の数字が必要であることを意味します文字列内で、$ は文字列の終わりです。

コード例:

import re


def if_integer(string):

    reg_exp = "[-+]?\d+$"
    return re.match(reg_exp, string) is not None


string1 = "132"
string2 = "-132"
string3 = "abc"

print(if_integer(string1))
print(if_integer(string2))
print(if_integer(string3))

出力:

True
True
False

関連記事 - Python String

関連記事 - Python Integer