Python入门第四天——程序控制

按照执行流程划分,Python 程序也可分为 3 大结构,即顺序结构、选择(分支)结构和循环结构:

1、顺序结构就是让程序按照从头到尾的顺序依次执行每一条 Python 代码,不重复执行任何代码,也不跳过任何代码。
2、选择结构也称分支结构,就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码。
3、循环结构就是让程序“杀个回马枪”,不断地重复执行同一段代码。

顺序结构

我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条、第3条……一直到最后一条语句

对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用,儿童因为年龄不够,没有权限使用。这时候程序就需要做出判断,看用户是否是成年人,并给出提示。

选择结构(分支结构)

可以使用 if else 语句对条件进行判断,if else 语句可以细分为三种形式,分别是 if 语句、if else 语句和 if elif else 语句

Python入门第四天——程序控制
Python入门第四天——程序控制
Python入门第四天——程序控制
注意:

1、elif 和 else 都不能单独使用,必须和 if 一起出现,并且要正确配对。
2、if、elif、else 语句的最后都有冒号:,不要忘记。
3、不要忘记缩进,1 个 Tab 键和缩进 4 个空格效果一样,但两者本质不同,尽量用同一个方法缩进

【实例】判断一个人的身材是否合理:

height = float(input(“输入身高(米):”))
weight = float(input(“输入体重(千克):”))
bmi = weight / (height * height) #计算BMI指数
if bmi<18.5:
 print(“BMI指数为:”+str(bmi))
 print(“体重过轻”)
elif bmi>=18.5 and bmi<24.9:
 print(“BMI指数为:”+str(bmi))
 print(“正常范围,注意保持”)
elif bmi>=24.9 and bmi<29.9:
 print(“BMI指数为:”+str(bmi))
 print(“体重过重”)
else:
 print(“BMI指数为:”+str(bmi))
 print(“肥胖”)

运行结果:

输入身高(米):1.7↙
输入体重(千克):70↙
BMI指数为:24.221453287197235
正常范围,注意保持

循环语句

while循环

while 条件表达式:
代码块

这里的代码块,指的是缩进格式相同的多行代码,不过在循环结构中,它又称为循环体

具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块…如此循环,直到条件表达式的值为假(False),才终止循环。
Python入门第四天——程序控制

【实例】打印 1~100 的所有数字

num = 1 #循环的初始化条件
while num < 100 : #当 num 小于100时,会一直执行循环体
 print(“num=”, num)
 num += 1 # 迭代语句
print(“循环结束!”)

for 循环

for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块

迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值

Python入门第四天——程序控制
【实例】实现从 1 到 100 的累加

print(“计算 1+2+…+100 的结果为:”)
#保存累加结果的变量
result = 0
#逐个获取从 1 到 100 这些值,并做累加操作
for i in range(101):
 result += i
print(result)

运行结果为:

计算 1+2+…+100 的结果为:
5050

循环结构中else用法

无论while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。

while 循环添加一个 else 代码块

add = “http://t.tt”
i = 0
while i < len(add):
 print(add[i],end="")
 i = i + 1
else:
 print("\n执行 else 代码块")

for 循环添加一个 else 代码块

add = “http://t.tt”
for i in add:
 print(i,end="")
else:
 print("\n执行 else 代码块")

程序执行结果为:

http://t.tt
执行 else 代码块

嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,甚至 while 中有 for 或者 for 中有 while 也都是允许的。

当 2 个(甚至多个)循环结构相互嵌套时,位于外层的循环结构常简称为外层循环或外循环,位于内层的循环结构常简称为内层循环或内循环

强制离开当前循环体的办法:
使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。
只用 break 语句,可以完全终止当前循环。

break 语句
只需要在相应 while 或 for 语句中直接加入break 语句即可。
对于嵌套的循环结构来说,break 语句只会终止所在循环体的执行,而不会作用于所有的循环体

跑步为例,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。

continue 语句
continue 语句只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。

跑步为例,原计划跑 10 圈,但当跑到 2 圈半的时候突然接到一个电话,此时停止了跑步,当挂断电话后,并没有继续跑剩下的半圈,而是直接从第 3 圈开始跑。