1. 条件分支
if bool_expression1:
suit1
elif bool_expression2:
suit2
...
else:
suit
有些情况下,可以把一条if...else语句缩减成单一的条件表达式:
expression1 if bool_expression else expression2
这相当于C语言当中的问号表达式。
2. 循环
while循环
while bool_expression:
suit1
else:
suit2
其中,else分支在break跳出循环,或者直接return,或者由于异常跳出循环时不会执行,其他情况下都会执行。
for循环
for expression in iteralbe:
suit1
else:
suit2
3. 异常处理
捕获异常
try:
try_suit
except exception_group1 as variable1:
except_suit1
...
else:
else_suit
finally:
finally_suit
如果有异常产生,就会顺序匹配,得到处理代码;如果没有异常产生,else块就会被执行;不管有没有发生异常finally块都会被执行。
产生异常
raise expression(args)
raise expreesion(args) from original_exception
raise
使用前两种时,指定的异常应该或者是内置的异常,或者继承自Exception的自定义异常。如果给定一些文本作为该异常的参数,那么在捕获到该异常并打印时,这些文本应该为输出信息。使用第三种时,raise将重新产生当前活跃的异常,如果当前没有就会产生一个TypeError。
自定义异常
class ExceptionName(baseException):pass
基类应为Exception类或者是继承自Exception的类。自定义异常的一个用途就是跳出深层嵌套的循环。