结构化革命的重要产物
顺序,分支,循环,迭代
以及从循环或迭代中单层跳出:break ,多层跳出: return, 跳至下次迭代:continue ,跳至特定语句,多层跳出:异常处理
5.1程序结构与 运行
顺序执行语句序列
解释器顺序执行每条语句,包括主程序文件与import加载的库文件
5.2条件语句
if elif else
空语句:pass
5.3循环
逻辑循环:while
迭代循环:for in
可迭代对象:实现__iter__
enumerate() (index,对象)
zip(x,y,z)打包,迭代次数决定于最少元素数量
5.4异常
高层推测异常的语义,完成回卷,释放资源
raise Exception([value]) 引发异常
Exception 异常类型
value 信息值
try-except 捕捉异常
中断正常控制流,
跳至匹配的except子句,传递控制权。执行完成后,try-except块结束
不匹配,异常传递至上级代码块(外层嵌套的try-catch)
始终不匹配:解释器终止
except ERRORType as var
Exception:所有异常
try-except之后接else
处理没有异常的情况
finally 无错与否始终执行,识别错误,完成收尾(关闭资源)
重新引发异常
引发自定义异常
5.5上下文管理器与with语句
with obj as var obj通常为需要关闭的资源,防止出错后未关闭
5.6断言与debug
assert与__debug__
调试模式下运行,优化模式下跳过