Original title Link: http://www.runoob.com/python/python-exercise-example11.html
Title: Classical Questions: There are a pair of rabbits, from the 3rd month after birth a pair of rabbits each month, the rabbit long to the third month after the birth of a pair of rabbits, if the rabbit is not dead, ask each month the total number of rabbits?
Analysis: It looks quite complicated, but the rabbit sequence every month: 1,1,2,3,5,8,13 ... is the Fibonacci sequence. So the programming core is to achieve after one months equals the first two months of sums. Use the latest learned generator to write.
My Code:
defRabbit (): a=b=1 whileTrue:yieldA A, b=b,a+Bmonth=1if __name__=='__main__': forIinchRabbit (): #这是个无限循环, because the title did not say how many months ... To terminate with Ctrl Print("month:%d rabbits:%d"%(month,i)) Month+=1#可以对month设置if条件语句, and then break loop
Thinking:
1. Use of the generator can be used for or next
But the Loop Next (Rabbit ()) does not work, each cycle is restarted, so the output is 1
Should X=rabbit () and then loop next (x).
2.yield generated data, with next () can not be played out, to use another print () will be typed.
Python3 Exercises 100 Questions--011