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.
Le
return
之后的print
dans le deuxième morceau de code ne peut pas être exécuté. La fonction renvoyée.