Python 재귀 함수의 반환 값 이해
재귀 함수에서는 재귀 호출의 반환 값을 올바르게 처리하는 것이 중요합니다. 원하는 결과. 특정 경우 None을 반환하는 이유를 이해하기 위해 제공된 코드를 검토해 보겠습니다.
gcdIter 함수는 반복 접근 방식을 사용하여 두 숫자의 최대 공약수(GCD)를 찾는 것을 목표로 합니다. 그러나 문제는 재귀 호출에 있습니다.
<code class="python">gcdIter(a, b%a) </code>
함수가 재귀 호출의 반환 값을 할당하지 못합니다. 기본적으로 Python은 함수가 명시적으로 값을 반환하지 않으면 None을 반환합니다. 따라서 함수가 재귀적으로 호출되면 none 값이 올바른 GCD 값을 덮어씁니다.
이 문제를 해결하려면 return 키워드를 사용하여 재귀 호출의 반환 값을 전달해야 합니다.
<code class="python">return gcdIter(a, b % a)</code>
이제 함수는 재귀 호출에서 얻은 GCD 값을 할당하여 올바른 결과가 반환되도록 합니다.
또한 함수 정의에서 다중 대상 할당을 사용하여 코드를 더욱 단순화할 수 있습니다.
<code class="python">def gcdIter(a, b): a, b = min(a, b), max(a, b) if b % a == 0: return a return gcdIter(a, b % a)</code>
또는 GCD 반복 함수의 더 간결한 버전을 다음과 같이 표현할 수 있습니다.
<code class="python">def gcd_iter(a, b): return gcd_iter(b, a % b) if b else abs(a)</code>
재귀 호출을 수정하고 적절한 반환 값을 사용하여 gcdIter 함수는 다음과 같이 표현할 수 있습니다. 어떤 경우에도 None을 반환하지 않고 두 숫자의 GCD를 효과적으로 찾습니다.
위 내용은 내 재귀 GCD 함수가 None을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!