控制流程
if 语句
if 语句
- 依次判断 if block 或 elif block 中的 assign_expression 是否为真,
- 若为真则执行该语句,
- 若都不为真, 执行 else block;
if assignment_expression:
suite
elif assignment_expression:
suite
else:
suite
for 语句
for 语句
- target_list 依次取 expression_list 内元素,
- 元素赋值给 target_list,
- 若 expression_list 未取完, 执行 suite 语句,
- 反之结束循环, 执行 else 块;
- 执行 suite 语句后, 返回步骤 1;
for target_list in expression_list:
suite
else:
suite
计数器错误
- for 语句通过计数器取 expression_list 元素,
- 因此不要在 for 语句中修改 expression_list,
- 若要修改, 使用其副本;
for target_list in expression_list[:]:
suite
else:
suite
while 语句
while 语句
- 判断 assignment_expression 是否为真,
- 若为真则执行 suite;
- 反之结束循环, 执行 else 块;
- 执行 suite 后, 返回步骤 1;
while assignment_expression:
suite
else:
suite
break 语句
位置
- for 语句;
- while 语句;
机制
- 终止最近循环, 且跳过 else 块;
- 若 break 在 try...finally 语句中, 在终止循环前执行 finally 块;
continue 语句
位置
- for 语句;
- while 语句;
机制
- 跳转最近循环下一次循环起始步骤, 且跳过 else 块;
- for: target_list in expression_list;
- while: assignment_expression;
- 若 continue 在 try...finally 语句中, 在终止循环前执行 finally 块;
pass 语句
pass 语句
- 没有任何操作, 什么也没有发生;
try 语句
try 语句
- 正常执行 try 语句,
- 若出现异常, 根据 Error 执行对应 except 块;
- 若无对应异常, 执行 except 块;
- try 正常执行后, 执行 else 块;
- 执行所有步骤后, 执行 finally 块;
try:
suite
except Error_A:
# 异常 A
suite
except Error_B:
# 异常 B
suite
except :
# 其余异常 (必须放置最后)
suite
else:
suite
finally:
suite