作业求助python
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)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
你没有返回 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)
print('经历%d个月,小兔崽子对数为%d'%(x,result))
return result zltzlt 发表于 2020-8-7 10:30
你没有返回 result。这样试试:
rabbit(20)
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历9个月,小兔崽子对数为34
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历10个月,小兔崽子对数为55
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历9个月,小兔崽子对数为34
经历11个月,小兔崽子对数为89
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历9个月,小兔崽子对数为34
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历10个月,小兔崽子对数为55
经历12个月,小兔崽子对数为144
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历9个月,小兔崽子对数为34
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历10个月,小兔崽子对数为55
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历8个月,小兔崽子对数为21
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历9个月,小兔崽子对数为34
经历11个月,小兔崽子对数为89
经历13个月,小兔崽子对数为233
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历6个月,小兔崽子对数为8
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历2个月,小兔崽子对数为1
经历4个月,小兔崽子对数为3
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
经历3个月,小兔崽子对数为2
经历5个月,小兔崽子对数为5
经历7个月,小兔崽子对数为13
经历2个月,小兔崽子对数为1
救命死循环了 4399king 发表于 2020-8-7 10:33
rabbit(20)
经历2个月,小兔崽子对数为1
经历1个月,小兔崽子对数为1
这不算死循环吧,你把数调小一点看看 zltzlt 发表于 2020-8-7 10:43
这不算死循环吧,你把数调小一点看看
不是,只是他把输出放里边了,把所有的过程输出了
这个代码的问题首先是返回值,改法就是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))
bangbang-ande 发表于 2020-8-7 11:40
这个代码的问题首先是返回值,改法就是zltzlt大神的了
接着就是你把所有的过程输出了,导致你以为死循环了 ...
赞同! 本帖最后由 zyc0 于 2020-8-7 14:45 编辑
bangbang-ande 发表于 2020-8-7 11:40
这个代码的问题首先是返回值,改法就是zltzlt大神的了
接着就是你把所有的过程输出了,导致你以为死循环了 ...
你这个对的,但是把月份输入给整没了。我又在外面嵌了一层用来输入月份的,楼主的代码放里面用来计算就可以了
代码如下:
def rabb(rabbit_count):
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
ans = rabbit(rabbit_count)
print('经历%d个月,小兔崽子对数为%d' % (rabbit_count, ans))
页:
[1]