Le code récursif ne renvoie aucun : comprendre la raison
Le code Python fourni vise à localiser un caractère spécifique dans une chaîne en utilisant une approche récursive. Cependant, il renvoie None à plusieurs reprises malgré l'indication de sa présence avec la déclaration d'impression « Je suis ici maintenant ». Pour comprendre la raison sous-jacente de ce comportement, examinons la structure du code et découvrons la source de sa nature non renvoyée.
La fonction isIn utilise une stratégie diviser pour régner, partitionnant la chaîne aStr en segments égaux. et rechercher de manière récursive la partie désignée jusqu'à ce qu'elle localise ou élimine le caractère. L'impression dans le cas de base, "Je suis là maintenant", sert de confirmation de la recherche du personnage.
L'omission d'une déclaration return sur la ligne finale s'avère critique. Lorsque la fonction atteint la fin de sa piste d'exécution sans rencontrer de retour explicite, elle renvoie par défaut Aucun. Cela explique pourquoi True n'est pas renvoyé une fois le personnage réussi à trouver.
Pour remédier à ce problème, une instruction return doit être incorporée dans la dernière ligne, comme le suggère la solution :
<code class="python">return isIn(char, aStr)</code>
Avec ce correctif, la fonction récursive propagera de manière appropriée la valeur True lorsqu'elle tombera sur le caractère souhaité dans sa descente récursive, garantissant le retour attendu et évitant la réponse par défaut Aucun.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!