Chaque fois que vous créez une fonction récursive, la première chose que vous voulez vous poser est la suivante: comment l'algorithme mettre fin? Soit, quel est le cas de base? Dans votre exemple, l'algorithme devrait arrêter d'imprimer des caractères après l'impression de la lettre «a», c'est donc votre cas de base.
Ensuite, vous devez demander comment accéder au cas de base à partir de votre cas de départ. C'est assez simple: vous voulez imprimer le caractère précédent jusqu'à ce que vous atteigniez le scénario de base. (. Un caractère est essentiellement juste un entier, de sorte que signifie que vous voulez soustraire un du caractère et de l'imprimer comme une chaîne)
Mettre tout cela ensemble, je suis arrivé:
def print_reverse(ch):
print ch,
if ch > 'a':
print_reverse(chr(ord(ch)-1))
else:
print # New line
print_reverse('h')
(Si vous ne savent pas ce que les fonctions Python ord
et chr
font, les chercher dans l'interpréteur interactif utilisant help(ord)
et help(chr)
.)
Est-ce que c'est ce devoir? – nmichaels
Quel résultat attendez-vous? –
@Nathon: Non ce n'est pas ...... Je suis étudiant pour un examen ,,: ((( – user531225