2012-08-24 3 views
-2

유효한 항목 만 반환하는 함수.유효한 항목 만 반환하는 재귀 함수

코드 :

def test(): 
    x = input('1' or '0') 
    if x == '1' 
     x = 'yes' 
    elif x == '0' 
     x = 'no' 
    else: 
     print('Error!') 
     test() 
    return x 

x = test() 
print(x) 

어떻게 X의 반환하는 경우에만 유효한 항목 반환 보장 할 수 있습니다 (1 또는 0)? ... 순간

I가 1 또는 0 다음 다른 번호를 입력하면

는, 테스트 기능 자체를 호출하고이 값에 관계없이이 시점 이후에 입력의 어떤 입력 반환됩니다

왜 이런 일이 않고 어떻게하면이 함수를 호출하여 함수 호출자에게 '예'또는 '0'이 될지 1 만 반환하도록 수정할 수 있습니까?

환호

+2

일부 구문 오류가 있어야하고'x = input ('1'또는 '0')'줄이 어리 석다. 문법적으로는 정확하지만 ... – 0605002

답변

3

당신은 어디 재귀 호출의 결과를 저장하지 않습니다.

else: 
    print('Error!') 
    test() 
return x 

에 : 당신은 변경해야

else: 
    print('Error!') 
    x = test() 
return x 
+0

프롬프트 응답에 감사드립니다. :) 완벽하게 작동합니다. . –

2

이 훨씬 더 노골적 루프를 사용하여 작성 될 것이며, 사용자가 1000 개 이상의 실수를하면 보너스로 실패하지 않습니다 만, 여러분이 묻기 때문에 : test()에 대한 재귀 호출은 재귀 호출의 반환 값을 버리고 있습니다. x = test()을 수행해야합니다.