2014-11-11 7 views
-2

입력에 정수를 입력 했는데도이 함수가 "정수를 입력해야합니다"라는 오류 메시지를 표시하는 이유는 무엇입니까?간단한 파이썬 함수 정수 오류?

def readValue(): 
    while True: 
     pressure = input('Type pressure: ') 
     if pressure == int(pressure): 
      return pressure 
     else: 
      print('You need to type an integer.') 
+3

''2 '== 2'는 항상' False ' – nu11p01n73R

+1

입력을받은 직후에'인쇄 유형 (압력) '을 수행합니다. – Phani

답변

1

이 줄은 그럼 당신은 동일하지 않습니다 pressure

if pressure == int(pressure): 

이들의 변환 int에 문자열을 비교

pressure = input('Type pressure: ') 

pressure에 문자열 입력을 할당합니다. 당신은 몇 가지 간단한 입력 유효성 검사를 수행하려는 경우

, 당신은 try/except를 사용하고 int로 변환하는 오류를 나타내는 예외 ValueError, 확인 할 수있다.

+0

이제 작동합니다. 감사합니다. –

1

나는 이것이 파이썬 3이라고 가정합니다.이 경우 input()은 문자열을 반환합니다.

문자열 3int("3")의 결과와 같지 않으므로 테스트가 실패합니다.

1
pressure = input('Type pressure: ') 

라인은, 을 작업을 다음

def readValue(): 
    while True: 
     pressure = input('Type pressure: ') 
     try: 
      pressure = int(pressure) 
      return pressure 
     except: 
      print('You need to type an integer.') 
      return 0 
print readValue() 

그것을 시도하고 작동 다음과 같이 수행 할 작업을 수행 할 수 있습니다 나를에 따르면 유효하지 않습니다!

try/except는이 유형의 작업에서 작동합니다 ..... 시도하면 압력이 정수 값으로 변환되고 오류가 발생하면 부분을 제외하고 실행됩니다. :)