请问画圈位置为什么不能用print直接输出?编写时也没有报错
因为是递归,jie_cheng()函数每层只要调用一次。
你加print中也调用了jie_cheng()函数,这样每层就是调用2次了。
def jie_cheng(n):
print(n)
if n<=1:
return 1
m = n * jie_cheng(n-1) #每层只要调用一次。用一个m变量保存, 同时 print(m) 和 return m 即可
print(m)
return m
print(jie_cheng(7))
return用于函数返回值,而printe用于输出结果。如果例子中将return 改成print,那么函数在运行中只要n>=1,均返回为None,打印输出时会出现整数不能与None类型相乘的错误,而使用return,返回的结果参与到递归运算中。