编辑
问题出在我的压痕上
原始问题
我是 Python 的新用户,我对 None 类型有疑问,我看了不同的问题,但问题仍然存在。
我的代码是计算阶乘
def fact(k):
if k > 0:
result = k + fact(k-1)
print(result)
else:
result=0
return result
fact(3)
我尝试了你的代码,但无法产生该错误。我认为您存在一些缩进问题,其中您的循环不遵循您期望的逻辑。请记住循环中的内容和循环外的内容取决于空白,因此请小心制表符和空格。
你的逻辑也有一些错误
编辑后的代码是这样的:
def fact(k):
if k > 0:
result = k * fact(k-1)
print(result)
else:
result=1
return result
还有一种更 Pythonic 的编写函数的方法是让它返回实际结果,而不是将结果传递给变量并返回变量。 我的假设是您在函数中打印结果以进行故障排除,因为这在您的最终版本中肯定会被删除。无论如何,请尝试使用以下代码:
def fact_v2(k):
if k > 0:
return k * fact_v2(k-1)
else:
return 1
你会这样称呼你的函数:
print(fact_v2(11))
祝你好运,Python 是一门有趣的语言,乍一看可能有点吓人,但你会成功的!