![](/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.