참값을 반환하지 못하는 재귀 코드
주어진 코드는 이진 검색 접근 방식을 사용하여 문자열 내에 문자가 존재하는지 확인하는 것을 목표로 합니다. 그러나 예상한 True 값을 반환하지 못하고 계속 None을 반환합니다.
분석:
코드는 문자와 문자열을 다음과 같이 사용하는 재귀 함수 isIn을 사용합니다. 입력. 문자열을 중간점에서 두 부분으로 나누어 이진 검색을 수행합니다. 문자가 중간점과 일치하면 문자의 존재를 나타내는 메시지를 인쇄하고 True를 반환합니다.
문자가 중간점 문자보다 크고 중간점이 문자열의 마지막 문자가 아닌 경우(예: 여전히 검색할 문자), 함수는 전반부를 제거하여 문자열을 업데이트합니다. 문자가 중간점 문자보다 작고 중간점이 문자열의 첫 번째 문자가 아닌 경우(즉, 아직 검색할 문자가 있는 경우) 함수는 후반부를 제거하여 문자열을 업데이트합니다.
단, 코드의 else 블록 내 마지막 줄에는 return 문이 없습니다. 이 return 문이 없으면 함수는 명시적으로 값을 반환하지 않고 종료됩니다. 이로 인해 Python이 암시적으로 None을 반환하므로 함수가 계속 None을 반환합니다.
해결책:
문제를 해결하려면 return 문을 추가해야 합니다. else 블록 내 마지막 줄:
<code class="python">return isIn(char, aStr)</code>
이 수정을 통해 함수는 재귀 호출의 결과를 반환하며, 문자열 내에서 문자가 발견되면 결국 True를 반환합니다.
위 내용은 내 재귀 이진 검색 코드가 True 대신 None을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!