跳到主要内容

控制流程

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