2014-09-06 1 views
-5

그래서 소수의 탐지기를 프로젝트로 만들고 있습니다. 나는 아주 프로그래밍에 익숙하지 않고 나의 친구는 나에게 작은 파이썬을 보여 주었다. 사용자가 입력 (5,28,156,42,63과 같은)에 숫자를 넣었는지, 바나나, 바지, 시리얼 같은 다른 값을 입력하여 사용자 정의 오류를 발생시키는 지 여부를 감지하는 함수를 만들고 싶습니다. "잘못된 번호입니다. 다시 시도하십시오."라고 말한 다음 번호를 입력 할 때까지 프로그램을 반복합니다.파이썬에서 입력 유형을 감지하는 함수를 만들고 있는데 작동하지 못합니다.

이 작업을 도와주세요. 다음

def number_checker(): 
    user_number = int(input('Please enter a Number: ')) 
    check = isinstance(user_number, int) 
    if check == True: 
     print ('This is a number') 
    if check == False: 
     print ('This is not a number') 
+1

당신은 자신에게 처음 – felipsmartins

+0

보기를 시도해야 시도 할 수 있습니다) int 인스턴스 user_number을 교차 검증 무엇을 시도했다. –

+0

코드를 작성하지 않겠습니다. 코드에 대한 질문에만 답변 할 수 있습니다 –

답변

-1

시도 :

def number_checker(): 
    msg = 'Put your number > ' 
    while True: 
     user_input = input(msg) 
     correct = user_input.isdigit() 
     if correct: 
      print("This is an integer") 
      return # here you can put int(user_input) 
     else: 
      print("This is not an integer") 
      msg = 'You typed not integer. Try again.> ' 

if __name__ == '__main__': 
    number_checker() 

그리고 그것은 또한의 좋은 규칙은 그들이 무엇에 따라 동사로 기능 이름을 제공합니다. 이 경우, 예를 들어 def int_input 또는 무엇인가 부여합니다.

1

1) 입력 문자열을 int으로 변환 할 수없는 경우 입력을 int으로 변환하면 예외가 발생합니다. 이미 int
3 것 같은

user_number = int(input('Please enter a Number: ')) 
       ^^^ 

2)가 이해가되지 않습니다 당신은

def number_checker():       
    while not input("enter num: ").isdigit(): 
     print("This is not a number")   
    print("This is a number")     
number_checker()      
+0

'number_checker()'를 다시 호출 하시겠습니까? 이것은 재귀 작업이 아닙니다. – Matthias

+0

@Matthias, 네 말이 맞아. 업데이트 된 답변 확인 –

관련 문제