条件语句
if 语句
if ...... :
pass
if else语句
if ......:
pass
else:
pass
if嵌套
if ......:
pass
elif ......:
pass
elif ......:
pass
循环语句
while循环
while ......:
pass
for循环
for ......:
pass
循环控制语句
- break :终止循环并转移到循环之后的语句
- continue:直接进入下一次迭代
- pass:占位代码,用于架构,细节后期实现
迭代器和生成器
迭代器(Iterator)用以遍历集合的所有元素
主要实现方法是iter()和next(),字符串、列表、元组可用于创建迭代器
import sys
mylist = [1,2,3,4]
it = iter(mylist)
while True:
try:
print(next(it))
except StopIteration:
sys.exit()
上述代码其实等效于一个for循环迭代
mylist = [1,2,3,4]
for it in mylist:
print(it)
生成器(generator)
- 将正常函数的return语句换成yield语句即构建了一个生成器
- 如果函数包含至少一个yield语句(它可能包含其它yield或return语句),那么它将成为一个生成函数。
- 区别在于,return语句完全终止函数,但yield语句会暂停函数保存其所有状态,并在以后的连续调用中继续执行(类似于线程挂起)
生成器函数与正常函数的差异
- 生成器函数包含一个或多个yield语句
- 当被调用时,它返回一个对象(迭代器),但不会立即开始执行
- iter()和next()之类的方法将自动实现,所以可以使用next()迭代项目
- 局部变量及其状态在连续调用之间被记住
- 最后,当函数终止时,StopIteration会在进一步调用时自动引发
def my_gen():
n=1
yield n
n+=1
yield n
n+=1
yield n
# >>>a=my_gen()
# >>>next(a)
# 1
# >>>next(a)
# 2
# >>>next(a)
# 3
# >>>next(a)
# Traceback .......
# ...
# StopIteration
具有循环的生成器
def all_even():
n=0
while True:
yield n
n+=2
#理论上可以生成所有的偶数
网友评论