python中最全流程控制语句

一if-elif-else语句(elifelse可选)

if有逻辑值式:

(缩进)代码

(缩进)代码

……

elif:

(缩进)代码

(缩进)代码

……

else:

(缩进)代码

(缩进)代码

……

二for/while循环

1.for循环(循环次数已知)

for迭代变量in可迭代对象:

(缩进)代码

(缩进)代码

……

else:

(缩进)代码

(缩进)代码

……(在循环正常结束时执行)

用迭代变量将一个可迭代对象值依次取出(依次赋值给迭代变量),直到可迭代

对象耗尽,可迭代对象有几个元素就循环几次。

可使用range()range(x)返回一个x个元素的可迭代对象

迭代变量可以为符号序列,此时可迭代对象应为对应嵌套序列,每个符号序列内的迭代变量取每个可迭代对象中对应的值,其中符号变量的[]和()可省

如:For[[[x,y],[z,w]]]in[[[1,2],[3,4]]],[[[5,6],[7,8]]]:

循环非正常结束:程序强制结束,遇到break,

2.while循环(循环次数未知)

while有逻辑值式:

(缩进)代码

(缩进)代码

……

else:

(缩进)代码

(缩进)代码

……(在逻辑值为零时执行)

3.break语句用来跳出一层循环

4.continue语句结束本次循环继续下层循环

三上下文管理器

1.上下文管理器语法

with[as]语句

with对象[as变量]:

(缩进)语句组

2.类实现上下文管理

该对象中必须有__enter__()方法和__exit__()方法

首先执行对象里面的__enter__函数,它的返回值会赋给as后面的变量。然

后开始执行语句组中的语句,不论成功失败(比如发生异常、错误,设置

sys.exit()),在语句组执行完成后,都会执行对象中的__exit__函数

如file对象的__enter__会返回file对象的地址,__exit__会关闭文件

3.生成器实现轻量级上下文管理

在函数中使用try-finally语句,在try块中使用yield做返回值。

首先执行生成器里的try子块,它的yield返回值会赋给as后面的变量。然

后开始执行语句组中的语句,不论成功失败(比如发生异常、错误,设置

sys.exit()),在语句组执行完成后,都会执行生成器里的finally子块

实例

fromcontextlibimportcontextmanager

contextmanager

deffunction(name,mode):

try:

f=open(name,mode)

yieldf

finally:

f.close()




转载请注明:http://www.aierlanlan.com/rzdk/3721.html