Maison  >  Questions et réponses  >  le corps du texte

Un débutant en Python pose des questions sur la récursivité

Premier code :

# -*- coding:gb2312 -*-
# 递归阶乘
def getnum(num):
    if num > 1:
        print(num)
        return num * getnum(num - 1)
    else:
        print(num)
        return num


result = getnum(5)
print(result)

Le premier résultat d'exécution de code :

Deuxième code :

# -*- coding:gb2312 -*-
# 递归阶乘
def getnum(num):
    if num > 1:
        return num * getnum(num - 1)
        print(num)
    else:
        return num
        print(num)a


result = getnum(5)
print(result)

Le deuxième résultat de l'exécution du code :

Ma question :
J'ai ajouté l'instruction print(num) à la fonction. Pourquoi le premier morceau de code peut-il imprimer 5 4 3 2 1 puis 120 Pourquoi dans le deuxième morceau de résultat, seulement 120, mais non ? 5 4 3 2 1 ? Logiquement parlant, j'ai déjà écrit toutes les instructions d'impression, je devrais donc les imprimer.

ringa_leeringa_lee2686 Il y a quelques jours669

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-06-12 09:23:02

    Le return之后的print dans le deuxième morceau de code ne peut pas être exécuté. La fonction renvoyée.

    répondre
    0
  • Annulerrépondre