2011-09-10 10 views
1

어떻게 프로그램이 함수 호출을 종료 할 수 있습니까? 조건이 만족되면 스스로를 호출하는 재귀 함수가 있습니다.파이썬 함수 호출 종료

def function(arg): 
    if (condition): 
     ... 
     return function(arg + 1) 

작동 방식은 다음과 같습니다. 조건이 충족되지 않으면 함수 호출이 종료됩니다. 내 프로그램에서 그럴 것 같지 않습니다 - 조건이 위반되었지만 프로그램이 return 문으로 건너 뜁니다 (아마도 return 문만 보입니다).

else 절에 넣을 수있는 일종의 exit()가 있습니까?

+3

의사 코드 대신 전체 스크립트를 게시 할 수 있습니까? 모든 기능과 관련 코드가 없으면 재귀 호출에서 잘못된 점을 알기는 어렵습니다. – chown

답변

3

나열된 바와 같이 코드는 항상 None 만 반환합니다. 모든 재귀를 수행하고 조건이 충족 될 때까지이 작업을 수행 한 다음 함수의 끝을 삭제하고 None을 반환합니다.

def f(x): 
    if (x<10): 
     return f(x+1) 
return x 

을 유용한 뭔가를이에서 구축 :

예를 들어, 다음을 시도하십시오.

0

파이썬 함수가 명시 적으로 return 값을 가지고 있지 않으면 None을 반환합니다. 암시적인 return None은 C와 유사한 언어의 return과 유사합니다.

+1

이것은 실제로 질문과 관련이 없습니다. – chown

+1

@chown yes do –

+1

그는 현재 코드가 예상 한 기능을 종료하지 않기 때문에 * 어떻게 * 함수 호출을 종료 할 것인지 묻습니다. 반환 값은 실제로 문제를 해결하는 데 중요한 역할을하지 않습니다. – chown

0

"function terminating"은 결과적으로 None을 반환합니다. 당신이 뭔가 다른 것을보고 있다면, 잘못 눌렀을 수도 있기 때문에 당신이 보는 return을 치는 것이 아주 좋다. python -tt myscript.py을 사용하여 탭과 공백이 섞이지 않았는지 확인하십시오.

+0

나는 그가 거기에 들여 쓰기를 의미한다고 생각한다. - "조건이 만족되면 스스로를 호출하는 재귀 함수가 있습니다." –

+0

@Tom : 물론, 탭과 스페이스를 부적절하게 섞은 경우 시각적으로 * 정확하게 나타날 수 있지만 잘못 해석 될 수 있습니다. –

+0

왜 잘못 들었습니까? –