>백엔드 개발 >파이썬 튜토리얼 >내 재귀 이진 검색 코드가 True 대신 None을 반환하는 이유는 무엇입니까?

내 재귀 이진 검색 코드가 True 대신 None을 반환하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-26 03:18:27629검색

Why Does My Recursive Binary Search Code Return None Instead of True?

참값을 반환하지 못하는 재귀 코드

주어진 코드는 이진 검색 접근 방식을 사용하여 문자열 내에 문자가 존재하는지 확인하는 것을 목표로 합니다. 그러나 예상한 True 값을 반환하지 못하고 계속 None을 반환합니다.

분석:

코드는 문자와 문자열을 다음과 같이 사용하는 재귀 함수 isIn을 사용합니다. 입력. 문자열을 중간점에서 두 부분으로 나누어 이진 검색을 수행합니다. 문자가 중간점과 일치하면 문자의 존재를 나타내는 메시지를 인쇄하고 True를 반환합니다.

문자가 중간점 문자보다 크고 중간점이 문자열의 마지막 문자가 아닌 경우(예: 여전히 검색할 문자), 함수는 전반부를 제거하여 문자열을 업데이트합니다. 문자가 중간점 문자보다 작고 중간점이 문자열의 첫 번째 문자가 아닌 경우(즉, 아직 검색할 문자가 있는 경우) 함수는 후반부를 제거하여 문자열을 업데이트합니다.

단, 코드의 else 블록 내 마지막 줄에는 return 문이 없습니다. 이 return 문이 없으면 함수는 명시적으로 값을 반환하지 않고 종료됩니다. 이로 인해 Python이 암시적으로 None을 반환하므로 함수가 계속 None을 반환합니다.

해결책:

문제를 해결하려면 return 문을 추가해야 합니다. else 블록 내 마지막 줄:

<code class="python">return isIn(char, aStr)</code>

이 수정을 통해 함수는 재귀 호출의 결과를 반환하며, 문자열 내에서 문자가 발견되면 결국 True를 반환합니다.

위 내용은 내 재귀 이진 검색 코드가 True 대신 None을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.