为什么这返回 None ?而不是返回事实?
(它不返回任何内容)--->为什么?
fact = 1
def factorial(n):
if (n-1)!=0:
global fact
fact=fact*n
n=n-1
print(fact)
factorial(n)
else:
return fact
n=int(input())
g=factorial(n)
print(g)
(it returns none)---> why?
fact = 1
def factorial(n):
if (n-1)!=0:
global fact
fact=fact*n
n=n-1
print(fact)
factorial(n)
else:
return fact
n=int(input())
g=factorial(n)
print(g)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为你需要在阶乘函数中返回
factorial(n)
,否则它只会被调用并且不会在调用函数中返回任何结果。此外,您不需要全局变量,只需在进行递归调用时将其与factorial
函数本身中的n
一起传递即可。此外,还有一个最干净的解决方案,没有任何不必要的变量:
如果你不想重新发明轮子,只需使用 math 模块:
Because you need to return
factorial(n)
in factorial function, otherwise it just gets called and does not return any result in the calling function. Also, you don't need the global variable, simply pass it along withn
in thefactorial
function itself when doing recursive call.Also, there's a cleanest solution without any unnecessary variables:
And if you dont wanna reinvent the wheel just use
math
module: