看完自强学堂的介绍后,觉得少讲了很多在《Head First Python》和《Python基础教程》中有的东西,于是借廖雪峰的博客进行进一步补充:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
由于是补充,所以这里仅提及在前面笔记中缺少的东西,不做重复介绍。
高级特性
列表生成式
运用列表生成式,可以快速生成list,可以通过一个list推导出另一个list,而代码却十分简洁。
[x * x for x in range(1, 11) if x % 2 == 0]
Result:[4, 16, 36, 64, 100]
生成器
generator是非常强大的工具,在Python中,可以简单地把列表生成式改成generator,也可以通过函数实现复杂逻辑的generator。
要理解generator的工作原理,它是在for循环的过程中不断计算出下一个元素,并在适当的条件结束for循环。对于函数改成的generator来说,遇到return语句或者执行到函数体最后一行语句,就是结束generator的指令,for循环随之结束。
列表生成式改生成器
只要把一个列表生成式的[]改成(),就创建了一个generator
“
L = [x * x for x in range(10)] #列表生成式
g = (x * x for x in range(10)) #生成器
创建了一个generator后,基本上永远不会调用next()方法,而是通过for循环来迭代它。
yield关键字的生成器
如果推算的算法比较复杂,用类似列表生成式的for循环无法实现的时候,还可以用函数来实现。
def fib(max):
n, a, b = 0, 0, 1
while n < max: