如果一个复合语句(if子句,while或for循环)的代码仅仅包含一行代码,可以和前面的语句写在同一行上:
elif语句(else-if)
条件表达式(三元操作符)
X if C else Y
计数循环:
count=0 while(count<**): count +=1
无限循环:
while True
range()内建函数的完整语法:
range(start, end, step=1)
range()会返回一个包含所有k的列表,这里start<=k<end ,从start到end,k
每次递增step,step不可以为0,否则将报错
xrange()类似range(),不过更使用于很大的范围,只被用在for循环中,在for循环外没有意义
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表
break语句:用于结束当前循环然后跳转到下条语句
continue语句:
pass语句:它不做任何事情--即NOP
迭代器:迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。
迭代器的两个基本方法:
next()方法:返回迭代器的下一个元素
__iter__()方法:返回迭代器对象本身
可变对象和迭代器:
除列表外的其他序列都是不可变的
创建迭代器:
对一个对象调用iter()就可以得到它的迭代器
生成器:是特定的函数,允许返回一个值,“暂停”代码的执行,带有 yield 的函数在 Python 中被称之为 generator(生成器)
yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,调用 fab(5) 不会执行 fab 函数,而是返回一个 iterable 对象!在 for 循环执行时,每次循环都会执行 fab 函数内部的代码,执行到 yield b 时,fab 函数就返回一个迭代值,下次迭代时,代码从 yield b 的下一条语句继续执行,而函数的本地变量看起来和上次中断执行前是完全一样的,于是函数继续执行,直到再次遇到 yield。看起来就好像一个函数在正常执行的过程中被 yield 中断了数次,每次中断都会通过 yield 返回当前的迭代值。