파이썬에서 재귀 함수와 관련된 몇 가지 문제점을 이해하는 데 어려움이 있습니다 (일반적으로 생각합니다). 나는 해답을 찾고자했지만 어떻게 찾지 못했습니다.파이썬에서 재귀 함수에 대한 반환 값
내가 검색 할 때 가장 일반적인 재귀 함수의 예를 촬영 :
이def sfactorr(j):
if j == 1:
return 1
else:
return j * sfactorr(j-1)
함수가 1보다 클 때마다, 그것은 일본의 == 1까지 다시 시작하지만 1 안타 때 아닌해야 반환 값은 1입니까? 분명히 그것을 실행할 때 전체 기능의 결과를 얻지 만 그 이유를 완전히 이해하지 못하는 것 같습니다.
즉, 기본 조건이 반환하는 것이 아니라 올바른 값을 반환하는 방법은 무엇입니까?
감사합니다.
'sfactorr (2)'을 수동으로 단계별로 평가 해보십시오. – jwodder
반환 값은'j == 1'을 눌렀을 때'1'이지만,'j'에 의해 곱하는'else'보다주의하십시오. 어제 (Java의 경우, 일반적인 아이디어는 그대로입니다.) https://youtu.be/ozmE8G6YKww – BorrajaX
'함수가 1보다 커질 때마다 j ==가 될 때까지 다시 시작하는 비디오 자습서가 있습니다. 1.''는 실제로 일어나지 않습니다''함수가 1과 다를 때마다 j == 1이 될 때까지 다시 시작됩니다. ' –