본문 바로가기
Python/Python FAQ

Python 문자열이 정수를 나타내는지 확인하는 방법은 try/except를 사용하지 않고 어떻게 할 수 있을까요? [중복됨], How can I check if a string represents an int, without using try/except? [duplicate]

by 베타코드 2023. 7. 24.
반응형

질문


정수를 나타내는 문자열 ('3', '-17'와 같은 문자열)을 try/except 메커니즘을 사용하지 않고 어떻게 판별할 수 있는 방법이 있을까요?

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

답변


양의 정수의 경우 .isdigit을 사용할 수 있습니다:

>>> '16'.isdigit()
True

하지만 음의 정수에는 작동하지 않습니다. 다음을 시도해 볼 수 있습니다:

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

'16.0' 형식과 int 캐스팅과 유사한 방식으로 작동하지 않습니다.

편집:

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

댓글