![](/img/trans.png)
[英]TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
[英]TypeError: unsupported operand type(s) for +: 'int' and 'NoneType
我是 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 的方式来编写 function 是让它返回实际结果,而不是将结果传递给变量并返回变量。 我的假设是您在 function 中打印结果以排除故障,因为这在您的最终版本中肯定会被删除。 无论如何,请尝试以下代码:
def fact_v2(k):
if k > 0:
return k * fact_v2(k-1)
else:
return 1
你会这样称呼你 function :
print(fact_v2(11))
祝你好运,Python 是一种有趣的语言,乍一看可能令人生畏,但你会成功的!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.