控制流程
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