본문 바로가기
파이썬

파이썬 2.7에서 원시 입력이 정수인지 어떻게 확인합니까?

by º기록 2021. 1. 4.
반응형

raw_input 이 정수인지 확인하는 데 사용할 수있는 방법이 있습니까?

웹에서 조사한 후이 방법을 찾았습니다.

print isinstance(raw_input("number: ")), int)

예를 들어 실행하고 4 를 입력하면 FALSE 가됩니다. 저는 파이썬에 익숙하지 않습니다. 어떤 도움을 주시면 감사하겠습니다.

 

해결 방법

 

isinstance (raw_input ( "number :")), int) 는 결과로 raw_input 이 문자열 객체를 반환하기 때문에 항상 False 를 생성합니다.

사용 try : int (...) ... (ValueError 제외 ) :

number = raw_input("number: ")
try:
    int(number)
except ValueError:
    print False
else:
    print True


print raw_input("number: ").isdigit()

참고 두 번째 문자는 숫자가 아닌 문자를 포함하므로 -4 에 대해 False 를 생성합니다. 숫자 만 원하는 경우 두 번째를 사용하십시오.

업데이트 J.F. Sebastian이 지적했듯이 str.isdigit 는 로케일에 따라 다릅니다 (Windows). int () 조차도 True 를 반환 할 수 있습니다.

>>> import locale
>>> locale.getpreferredencoding()
'cp1252'
>>> '\xb2'.isdigit()  # SUPERSCRIPT TWO
False
>>> locale.setlocale(locale.LC_ALL, 'Danish')
'Danish_Denmark.1252'
>>> '\xb2'.isdigit()
True
>>> int('\xb2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '\xb2'

 

참조 페이지 https://stackoverflow.com/questions/19440952

 

 

반응형

댓글