Python 流程控制
程序并不是简单的“从上到下”执行,很多时候,我们希望程序能根据不同的情况,做出不同的
选择,比如:根据情况跳过某些代码,或者重复执行某些代码,那这时就需要用到『流程控制
语句』,程序的执行流程大体上可分为三类:顺序、分之、循环。
备注:其中顺序执行是最简单的,就是按照程序的编写顺序依次执行,所以我们不再探讨顺
序执行。
分支
- 分支有很多其他的称呼,比如:条件控制语句、分支语句、选择语句。
- 分支是通过条件判断,来决定执行哪些代码。
单分支
语法格式:
if 判断条件:
条件【成立】时执行的代码1
条件【成立】时执行的代码2
……
语法图解:
注意:Python 靠代码缩进来识别代码范围,所以条件成立时要执行的代码前,必须加空
格。
示例代码:
1
2
3
4
5
|
age = int(input('请输入你的年龄:'))
if age >= 18:
print('你是成年人')
print('成年人的世界,虽不容易,但很精彩!')
print('欢迎你来学习Python!')
|
双分支
语法格式:
if判断条件:
条件【成立】时执行的代码1
条件【成立】时执行的代码2
else:
条件成【不成立】时执行的代码1
条件成【不成立】时执行的代码2
语法图解:

示例代码:
1
2
3
4
5
6
7
8
|
age = int(input('请输入你的年龄:'))
if age >= 18:
print('你是成年人')
print('成年人的世界,虽不容易,但很精彩!')
else:
print('你是未成年人')
print('好好加油,努力学习,未来可期!')
print('欢迎你来学习Python!')
|
多分支
语法格式:
if判断条件1:
条件1【成立】时执行的代码
elif判断条件2:
条件2【成立】时执行的代码
elif判断条件3:
条件3【成立】时执行的代码
else: # else如不需要可以省略
上述所有条件都不成立时执行的代码
语法图解:

示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#根据年龄来判断处于人生哪个阶段。
age = int(input('请输入你的年龄:'))
if age <= 10:
print('你是幼儿')
elif age <= 18:
print('你是青少年')
elif age <= 30:
print('你是青年')
elif age <= 50:
print('你是中年')
elif age <= 60:
print('你是中老年')
else:
print('你是老年')
|
使用多分支语句时,需要注意下面几点:
- 一个if语句只能匹配1个else语句,但可以匹配多个elif语句,并且else语句要在所
有的elif语句之后。
- 一旦某个分支语句检测为true,其他的elif以及else语句都将不再执行。
嵌套分之
语法格式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
if判断条件1:
#条件1成立时执行的代码1
#条件1成立时执行的代码2
# ......
if判断条件2:
#条件2成立时执行的代码1
#条件2成立时执行的代码2
# ......
elif判断条件3:
#条件3成立时执行的代码
# ......
else:
#条件2、条件3都不成立时执行的代码1
#条件2、条件3都不成立时执行的代码2
# ......
else:
#条件1不成立时执行的代码1
#条件1不成立时执行的代码2
# ......
if 判断条件4:
# 条件4 成立时执行的代码
# ......
else:
# 条件4 不成立时执行的代码
# ......
|
2 语法图解:

循环
循环是一种让代码“重复执行”的机制,当某个条件成立时,程序会反复执行一些语句,直到条
件不再满足时,再停止运行。
while循环
语法格式:
while循环条件:
条件成立时执行的操作1
条件成立时执行的操作2
循环逻辑:
- 先判断循环条件是否成立(是否为 True)
- 如果成立 → 执行循环中的代码
- 执行完循环体 → 再次判断循环条件
- 若仍成立 → 继续执行循环中的代码
- 若不成立 → 循环结束
代码示例:
1
2
3
4
5
|
n = 1
while n <= 10:
print(f'第{n}次你好啊')
n += 1
print(f'我是 while 循环以外的代码,执行到这里时,循环已经结束了,此时的n是:{n}')
|
注意:如果条件一直成立,就是无限循环(死循环)。例如上述代码中,如果忘记编写n
+= 1就会产生死循环。
for 循环
语法格式:
for 临时变量 in 可迭代对象:
要执行的操作1
要执行的操作2
什么叫『可迭代对象』?
比如我们有一个盒子,里面装着:苹果、香蕉、橙子。我们可以一个接一个地把水果取出来,
那这个盒子,就相当于 Python 中的可迭代对象。每次 for 循环执行时,其实就是在“取出一
个水果”,目前我们还没学到“类”和“对象”,先记住一句话: 能一个个取出来的,就是可迭代
的。
循环逻辑:
- 从可迭代对象中取出第一个元素 → 赋值给临时变量
- 执行循环中的代码
- 取出下一个元素 → 重复执行
- 当所有元素取完后 → 循环结束
代码示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#使用for循环遍历range()所指定的数字范围
n = 0
for n in range(1, 11):
print(f'第{n}次你好啊')
print(f'我是for循环以外的代码,执行到这里时,循环已经结束了,此时的n是:{n}')
#使用for循环遍历字符串
for m in 'abcdef':
print(m)
#演示由于误操作造成的死循环(下面代码中,用到了列表,我们后面会讲解)
#备注:for循环还能遍历很多我们没有讲到的东西,比如:元组、列表、对象......
nums = [1,2,3]
for i in nums:
# nums.append(4) #此行代码会造成死循环
print(i)
|
以上代码中的:range(1,11)、‘abcdef’、[1,2,3]这些都是可迭代对象,我们后面还会遇到
很多可迭代对象。
对比 while 与 for

continue 与 break
continue 和 break 都可用于循环语句中(while循环、for循环都可以)它们的作用分别是:
- continue:跳过本次循环剩余语句,直接进入下一次循环判断。
- break:立即终止循环,不再执行后续循环。
测试continue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#测试continue
for day in range(1, 5):
print(f'********第{day}天********')
print('吃饭')
continue
print('睡觉')
for day in range(1, 5):
print(f'********第{day}天********')
print('吃饭')
if day == 2:
continue
print('睡觉')
for day in range(1, 5):
if day == 2:
continue
print(f'********第{day}天********')
print('吃饭')
print('睡觉')
for day in range(1, 5):
print(f'********第{day}天********')
print('吃饭')
for item in range(1, 3):
print(f'面包{item}')
continue
print(f'牛奶{item}')
print('睡觉')
for day in range(1, 5):
print(f'********第{day}天********')
print('吃饭')
for item in range(1, 3):
print(f'面包{item}')
if day == 4 and item == 2:
continue
print(f'牛奶{item}')
print('睡觉')
|
测试break
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
for day in range(1, 5):
print(f'********第{day}天********')
print('吃饭')
break
print('睡觉')
for day in range(1, 5):
print(f'********第{day}天********')
print('吃饭')
if day == 2:
break
print('睡觉')
for day in range(1, 5):
if day == 2:
break
print(f'********第{day}天********')
print('吃饭')
print('睡觉')
for day in range(1, 5):
print(f'********第{day}天********')
print('吃饭')
for item in range(1,3):
print(f'面包{item}')
if day == 4 and item == 2:
break
print(f'牛奶{item}')
print('睡觉')
|