재귀 함수의 None 반환 문제 해결
재귀 함수를 처리할 때 예기치 않은 None 값을 방지하려면 적절한 반환 처리를 보장하는 것이 중요합니다. 사용자에게 "a" 또는 "b"를 입력하라는 메시지를 반복적으로 묻는 다음 기능을 고려하세요.
def get_input(): my_var = input('Enter "a" or "b": ') if my_var != "a" and my_var != "b": print('You didn\'t type "a" or "b". Try again.') get_input() else: return my_var print('got input:', get_input())
사용자가 "a" 또는 "b"를 올바르게 입력하면 함수가 예상대로 작동하지만 다른 문자가 있으면 함수는 오류 메시지를 인쇄하고 자신을 재귀적으로 호출합니다. 그러나 재귀 호출이 수집된 입력을 올바르게 반환하지 않습니다.
입력이 "a" 또는 "b"가 아닌 경우 반환 문으로 재귀 호출이 종료되지 않아 문제가 발생합니다. Python은 이를 함수의 끝에 도달한 것으로 해석하고 암시적으로 None을 반환합니다. 이 동작은 다음과 유사합니다.
def f(x): pass print(f(20)) # Implicitly returns None
이 문제를 해결하려면 재귀 get_input() 호출의 결과를 반환하도록 if 문을 수정해야 합니다.
if my_var != "a" and my_var != "b": print('You didn\'t type "a" or "b". Try again.') return get_input()
이를 통합하여 조정을 통해 사용자가 잘못된 문자를 입력한 경우에도 입력 내용을 올바르게 반환하고 입력 내용을 수정하는 기능을 제공합니다.
위 내용은 Python에서 재귀 함수가 없음을 반환하는 것을 어떻게 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!