ベルマークのない自由帳

ベルマークのない自由帳

有益と無益の境界例

Python 文字列が「数字」か判定・文字列内に数字があるか判定

最終的には「文字列に数字が含まれているのか」を判定したい。 その前段階として、「文字列が数字か」という日本語的に危うい判定をこなす。

文字列が数字か判定

.isdigit()メソッドを使用。

s = "hoge"
s2 = "1hoge"
n = "101"

print(s.isdigit(), s2.isdigit(), n.isdigit())
    -> False False True

他にもisdecimal()メソッドとisnumeric()メソッドが存在していて、微妙に挙動が異なる。
詳しくは以下のページ。

kk6.hateblo.jp

文字列の種別判定と数値変換 - Python学習講座

文字列内に数字があるか判定したい

for文を使って変数内の文字列を1字ずつ取得(iに代入)して、1字ずつ.isdigit()メソッドで判定していく。

s = "hoge"
s2 = "1hoge"

def check_num(string):
    for i in string:
        if i.isdigit():
            return True
        else:
            return False

print(check_num(s))
    -> False

print(check_num(s2))
    -> True