|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- def rabbit(x):
- while x<=0:
- x=input('输入有误,请重新输入月数:')
- if x ==1:
- result=1
- elif x==2:
- result=1
- else:
- result=rabbit(x-1)+rabbit(x-2)
- print('经历%d个月,小兔崽子对数为%d'%(x,result))
-
- >>> rabbit(20)
复制代码
报错Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
rabbit(20)
File "<pyshell#8>", line 9, in rabbit
result=rabbit(x-1)+rabbit(x-2)
File "<pyshell#8>", line 9, in rabbit
result=rabbit(x-1)+rabbit(x-2)
File "<pyshell#8>", line 9, in rabbit
result=rabbit(x-1)+rabbit(x-2)
[Previous line repeated 14 more times]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
这个代码的问题首先是返回值,改法就是zltzlt大神的了
接着就是你把所有的过程输出了,导致你以为死循环了(其实没有,只是递归太多次,你等久点就ok了),而结果是对的,
改法就把结果输出来,把 - print('经历%d个月,小兔崽子对数为%d'%(x,result))
复制代码代码放到函数(方法)外边,
改一下代码,就可以了,
代码:
- def rabbit(x):
- while x<=0:
- x=input('输入有误,请重新输入月数:')
- if x == 1:
- result=1
- elif x==2:
- result=1
- else:
- result=rabbit(x-1)+rabbit(x-2)
- return result
- rabbit_count = 11
- ans = rabbit(rabbit_count)
- print('经历%d个月,小兔崽子对数为%d' % (rabbit_count, ans))
复制代码
|
|