一、分支结构控制语句
单分支if语句
- if 语句由4部分组成:关键字if,条件表达式,冒号,语句体
if 条件表达式:
语句体
- 单分支 if 语句先判断条件表达式的值,为真则执行语句体中的语句,反之则不执行
- 语句体要有统一的缩进形式
双分支 if/else语句
if 条件表达式:
语句体1
else:
语句体2
- 双分支if/else语句先判断条件表达式的真假,为真则执行语句体1,为假则执行语句体2
多分支if/elif/else语句
if 条件表达式
语句体1
elif 语句表达式2:
语句体2
………………
elif 语句表达式 n - 1:
语句体n - 1
else:
语句体n
- 从上到下依次判断条件表达式,找到第一个为真的条件表达式就执行该条件表达式下的语句体,不在判断剩余的条件表达式。如果所有的条件表达式均为假,则执行else后面的语句体,如果此时没有else语句体,则不执行任何操作
- 任何一个分支的语句体执行后,直接结束该分支语句
选择结构的嵌套
- 在某一个分支的语句体中,又嵌套新的分支结构,这种情况称为选择结构的嵌套
分支结构的三元运算
- 对于简单的if/else语句,可以使用三元运算表达式来实现:
x = 5
if x > 0:
y = 1
else:
y = 0
可用三元运算改写为:
x = 5
y = 1 if x > 0 else 0
- if/else 的三元运算表达式为:变量=值1 if 条件表达式 else 值2 如果条件表达式成立,变量取“值1”,否则变量取“值2”
二、循环结构控制语句
while语句
while 条件表达式:
循环体
简单的while循环由关键字 while、条件表达式、冒号、循环体构成
(1) 计算while 关键词后面的条件表达式值,其值为真,则进去步骤(2),否则进去步骤(3)
(2) 执行完循环体,转步(1)
(3) 循环结束
Tips:(1) 组成循环体的各语句必须是以相同的格式缩进
(2) 循环体既可以由单个语句组成,也可以由多条语句组成。如果语句尚未确定,可以暂时使用 pass 语句表示空操作,但是不可以没有任何语句
(3) 循环体中要有语句来改变某个变量的值,使得条件表达式因为该变量值的改变可以出现结果为假(包括零、空),从而能够导致循环终止,否则会造成死循环,这个变量通常被称为循环控制变量
(4) 关键字 while 必须小写
-
利用计数器来解决循环次数确定的问题
-
循环次数确定的问题是指循环之前就可以预知循环即将执行的次数,为了控制循环次数,通常在程序中设置一个技术变量,每次循环,该变量进行自增或自减操作,当变量值自增到大于设定的上限值或者自减到小于设定的下限值时,循环结束
利用信号值来解决循环次数不确定的问题 -
循环次数不确定的问题是指在编写程序或程序运行前无法预知循环执行的次数。为了控制循环,一般在程序中设置一个类似触发器的变量,每次循环,该变量接收一个新值,当该变量达到某信号值时,循环结束
for语句
for语句通过遍历一个序列(字符串、列表、元组)或可迭代对象中的每个元素来建立循环
for 变量 in 序列或可迭代对象:
循环体
- for循环通常和range()函数搭配使用
range( start, stop [, step])
- 功能:产生一个从start 开始(包括start)到stop(不包括stop)的两个整数之间间隔step 的可迭代对象
- step 为步长,步长也可以是负数,这时开始值应大于结束值 range 对象可以被转换成列表或元组
x = range(10)
y = list(x)
z = tuple(x)
break语句和continue语句
- break语句,跳出当前循环
- continue语句,跳出本层循环
- 如果具有嵌套循环,则break或continue只针对调用自己的这一层,对内层循环及外层循环都不会产生影响
带else的循环语句
- 在 while 循环和 for循环之后可加else语句,当循环体终止时,else语句执行一次,但是如果循环由于break语句而终止,则不会执行else
循环嵌套中的break和 continue语句
- 如果break语句在具有两层或多层循环嵌套的内层循环中,则break只终止内层循环,然后进去外层循环的下一条语句进行执行