COMP9021--7.18

从今天开始引入递归的概念

1. 为了避免递归过程中陷入死循环,一定要在最开始的时候就写好递归结束的条件

2. 递归的本质是通过解决smaller input,并用其结果得到下一步的output,类推直至约定的递归终止点

3. yield的作用是把一个函数变成一个generator,它与函数的不同之处在于生成generator看起来像是函数调用,但不会执行任何函数操作,直到调用next。在for循环执行时,每次循环执行到yield时,语句就会中断,函数就会返回一个迭代值,下次迭代时,代码将从yield的下一条语句继续执行,直到再次碰见yield

4. iter()也是为了生成迭代器 (used in list, tuple...)

5. 补充一个上节课的知识点,序列解包:

a=[0,1,2,3,4]

>>>d(*a)

0 1 2 3

6. 需要注意的一点,就是默认初值指的是默认一个原始位置,但是随着语句的执行,如果多次调用默认初值,其结果也会随之变化,如图:

7. 6中的解决方案是将默认初始值设置为空,每次遇到为空的情况就建立一个新的list:

 

8. quiz就是要找1组成的最大长方形

 

posted on 2019-07-19 15:25  Eleni  阅读(192)  评论(2编辑  收藏  举报

导航