try/except を使用せずに、文字列が int を表しているかどうかを確認するにはどうすればよいですか? [重複] 質問する

try/except を使用せずに、文字列が int を表しているかどうかを確認するにはどうすればよいですか? [重複] 質問する

try/except メカニズムを使用せずに、文字列が整数 ( ではなく'3'または)を表しているかどうかを判断する方法はありますか?'-17''3.14''asfasfas'

is_int('3.14') == False
is_int('-7')   == True

ベストアンサー1

正の整数の場合は.isdigit:

>>> '16'.isdigit()
True

ただし、負の整数では機能しません。次の操作を試してみてください。

>>> s = '-17'
>>> s.startswith('-') and s[1:].isdigit()
True

この意味ではキャスト'16.0'に似ている formatでは機能しません。int

編集

def check_int(s):
    if s[0] in ('-', '+'):
        return s[1:].isdigit()
    return s.isdigit()

おすすめ記事