Python控制结构
条件分支
if语句
基本语法:
if bolean_exp1:
suite1
elif boolean_exp2:
suite2
elif boolean_expN:
suiteN
else:
else_suite
条件表达式:?:。
可以有0至多个elif语句,else语句是可选的。
当上一个分支不满足条件时,就会进入下一分支继续判断是否满足条件,当某个分支满足时,会执行相应的suite语句,并退出if块;如果没有一个分支满足,控制流会走完整个if块(若有else子句,会执行else子句)并退出if块。。
if…else语句可以写成如下表达式:
exp1 if boolean_exp else exp2
如果boolean_exp为True,表达式结果为exp1,否则为exp2。
可以通过not操作符对boolean_exp取反操作。
避免陷阱:
n + 1 if boolean else 0
此处n + 1会被当作表达式exp1的一部分。
循环
while循环
基本语法:
while boolean_exp:
while_suite
else:
else_suite
显而易见的是,python语言while循环有else分支。并且else分支是可选的。
只要boolean_exp始终为True,while循环就不会终止。
continue语句可以使while循环跳转到起始处(忽略本次循环余下语句)并重新评估boolean_exp的取值。
for 循环
基本语法1:
for exp in iterable:
for_suite
else:
else_suite
基本语法2:
for (exp1, exp2) in iterable: # 左侧类型可以是list等。
#序列拆分,右侧iterable如dict,通过调用dict.items()方法;左侧可以是多个变量或者变量序列。
for_suite
else:
else_suite
内涵形式(创建list、tuple等的一种表达式):
[exp for exp in iterable if boolean_exp] #创建list
通常,exp是一个或多个变量或者是一个变量序列(元组形式)。
for循环同while循环一样都有一个可选的else子句。
continue语句可以使for循环跳转到起始处(忽略本次循环余下语句)并进行下一次迭代。
注意:for 循环的表达式中创建的变量在循环终止后仍然存在,其存在周期为创建变量开始,直到所在函数闭合范围结尾处终止。
总结:
- if条件分支、while、for循环内部会因为错误error或return语句被退出;
- while、for循环可通过contiune语句跳过本次循环;
- while、for循环可通过break语句退出循环;
- while、for循环可选else子句在非正常终止(break语句、return语句、错误error)时不会执行;
- for循环中循环条件iterable是一个可迭代对象(str、list、tuple、map、dict等)。