재귀 함수가 None을 반환하는 이유는 무엇입니까?
제공된 코드에서 get_input() 함수가 때때로 None을 반환하는 문제에 직면합니다. 이는 사용자가 처음에 잘못된 값을 입력한 후 "a" 또는 "b"를 입력하는 경우 발생합니다. 그 이유를 이해하기 위해 함수를 좀 더 자세히 살펴보겠습니다.
get_input() 함수는 사용자에게 "a" 또는 "b"를 입력하라는 메시지를 표시합니다. 입력이 일치하지 않으면 메시지를 인쇄하고 다시 입력을 받기 위해 자신을 재귀적으로 호출합니다. 이 재귀 흐름은 사용자가 유효한 입력을 제공하도록 보장합니다.
문제는 함수 내부의 if 문에서 발생합니다. 사용자가 처음에 잘못된 값을 입력하고 함수가 자신을 재귀적으로 호출하면 재귀 호출은 아무것도 반환하지 않습니다. 대신 함수의 끝에서 떨어집니다.
Python에서 함수의 끝에서 떨어지는 것은 None을 반환하는 것과 같습니다. 이는 사용자가 처음으로 잘못된 값을 입력할 때 get_input() 함수가 None을 반환한다는 의미입니다.
이 문제를 해결하려면 재귀 호출이 값을 반환하는지 확인해야 합니다. if 문에서 다음 줄을 바꿉니다.
get_input()
다음 줄로 바꿉니다.
return get_input()
이 수정은 재귀 호출이 후속 호출의 결과를 반환하도록 보장합니다. 올바른 입력("a" 또는 "b") 또는 사용자가 잘못된 값을 계속 입력하는 경우 없음.
위 내용은 내 재귀 함수가 때때로 None을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!