> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 재귀 함수가 없음을 반환하는 것을 어떻게 방지할 수 있습니까?

Python에서 재귀 함수가 없음을 반환하는 것을 어떻게 방지할 수 있습니까?

DDD
풀어 주다: 2024-12-21 02:21:11
원래의
728명이 탐색했습니다.

How Can I Prevent Recursive Functions from Returning None in Python?

재귀 함수의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿