帮忙看看这个python代码错在哪了?

#coding=utf-8m={0:0,1:1}deffib(n):ifnotninm:m[n]=fib(n-1)+fib(n-2)returnm[n]if__name_... # coding=utf-8

m = {0:0,1:1}

def fib(n):
if not n in m:
m[n] = fib(n-1) + fib(n-2)
return m[n]

if __name__ == "__main__":
f = fib(10)
print(f)
展开
 我来答
莹纱之梦
2020-08-20 · TA获得超过3753个赞
知道大有可为答主
回答量:1543
采纳率:82%
帮助的人:243万
展开全部

没有发现错误,可以运行啊,你是不是需要检查一下缩进

追问
缩进是自动生成的,应该问题不大。下面是报的一堆错误。运行环境是pycharm2018版本的
Traceback (most recent call last):
File "D:/lq/Fibonacci_recursion.py", line 12, in
f = fib(10)
File "D:/lq/Fibonacci_recursion.py", line 8, in fib
m[n] = fib(n-1) + fib(n-2)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
Process finished with exit code 1
追答

我在pycharm里又试了一下,确实是正常运行的

你可以打印一下数据类型,我这里都是int,你看一下你那里是不是出现了None

明佳妙明
2020-08-20 · 专注办公自动化和建设工程资料编制
明佳妙明
采纳数:791 获赞数:825

向TA提问 私信TA
展开全部
>>> m = {0:0,1:1}
>>> m
{0: 0, 1: 1}
>>> def fib(n):
if not n in m:
m[n] = fib(n-1) + fib(n-2)
return m[n]
SyntaxError: expected an indented block
>>> def fib(n):
if not n in m:
m[n] = fib(n-1) + fib(n-2)
return m[n]

>>> if __name__ == "__main__":
f = fib(10)
print(f)

Traceback (most recent call last):
File "<pyshell#6>", line 2, in <module>
f = fib(10)
File "<pyshell#4>", line 3, in fib
m[n] = fib(n-1) + fib(n-2)
File "<pyshell#4>", line 3, in fib
m[n] = fib(n-1) + fib(n-2)
File "<pyshell#4>", line 3, in fib
m[n] = fib(n-1) + fib(n-2)
[Previous line repeated 6 more times]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4b65ff3
2020-08-20 · TA获得超过739个赞
知道小有建树答主
回答量:1388
采纳率:77%
帮助的人:114万
展开全部
代码没问题,重新整理一下缩进就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式