和其它编程语言一样,Python流程控制可分为 3 大结构:顺序结构、选择(分支)结构和循环结构。
Python对缩进的要求(重点)
Python 是一门非常独特的编程语言,它通过缩进来识别代码块,所以你不能胡乱缩进,这样很容易导致语法错误。
Python 是以缩进来标记代码块的
,代码块一定要有缩进,没有缩进的不是代码块。- Python 要求代码块必须缩进,但是却没有要求缩进量,你可以缩进 n 个空格或者 n 个 Tab 键的位置。推荐缩进 1 个 Tab键或者 4 个空格。
同一个代码块的缩进量要相同,缩进量不同的不属于同一个代码块
。如果某个语句忘记缩进了,Python 解释器并不一定会报错,但是程序的运行逻辑往往会有问题。不需要使用代码块的地方千万不要缩进,一旦缩进就会产生一个代码块
。
一、条件控制
1、if语句
1.1 if else语句
使用 if else 语句对条件进行判断,然后根据不同的结果执行不同的代码,这称为选择结构或者分支结构。
Python 中的 if else 语句可以细分为三种形式,分别是:
- if 语句,
- if else 语句,
- if elif else 语句。
Python 中用 elif 代替了 else if
。elif 和 else 都不能单独使用,必须和 if 一起出现,并且要正确配对。
if 语句的一般格式:
if 表达式 1:
代码块 1
elif 表达式 2:
代码块 2
... //其它elif语句
else:
代码块 n
注意:
- 代码块由具由相同缩进量的若干条语句组成。
- if、elif、else 语句的最后都有冒号:,不要忘记。
示例代码如下:
age = 18
if age <= 18:
print("小于等于18")
else:
print("大于18")
1.2 if语句嵌套
Python 中,if、if else 和 if elif else 之间可以相互嵌套。需要注意,在相互嵌套时,一定要严格遵守不同级别代码块的缩进规范。
if 语句嵌套的一般格式:
if 表达式1:
代码块
if 表达式2:
代码块
elif 表达式3:
代码块
else:
代码块
elif 表达式4:
代码块
else:
if 表达式 5:
代码块
else:
代码块
示例代码如下:
age = int(input("请输入你的年龄:"))
if age < 18:
if age < 13:
print("青少年")
else:
print("小屁孩")
else:
print("成年人")
2、match…case语句
在 Python 中没有 switch…case 语句,但在 Python3.10 版本添加了 match…case的条件判断,不需要再使用一连串的 if-else 来判断了。
语法格式如下:
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切,类似 Java 中的 default。
示例代码如下:
sex = -1
match sex:
case 1:
print("男")
case 0:
print("女")
case _:
print("未知")
二、循环语句
1、while循环语句
Python 中 while 语句的一般形式:
while 条件表达式:
代码块
示例代码如下:
# 求 num 到 count之和
num = 1
count = 100
sum = 0
while num <= 100:
sum += num
num += 1
else:
print("求和操作完成")
print("%d 到 %d 之和为: %d" % (num, count, sum))
2、循环使用 else 语句
Python 中,无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。
while 语法格式如下:
while 条件表达式:
代码块
else:
循环结束后执行的代码块
for 语法格式如下:
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块
else:
循环结束后执行的代码块
3、for 循环语句
Python for 循环的语法格式如下:
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块
示例代码如下:
# 遍历数值
for i in range(0, 10, 2):
print(i)
# 遍历列表
arr = ["A", "B", "C", "D"]
for ele in arr:
print(ele)
else:
print("------------")
# 遍历元组
tup1 = ("Python", 1, [2, 'a'], ("abc", 3.0))
for i in tup1:
print(i)
4、循环嵌套
Python 不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。分支结构语句与循环结构语句也可以相互嵌套,甚至可以多层嵌套。
示例代码如下:
for sex in range(0, 3):
match sex:
case 1:
n = 1
while n <= 2:
print("我是男" + str(n) + "号")
n += 1
case 0:
for letter in 'female':
if letter == 'a':
pass
print('执行 pass 块')
print('当前字母 :', letter)
case _:
print("未知")
else:
print("-----执行完毕-----")
5、强制跳出循环
Python 提供了 2 种强制离开当前循环体的办法:
- break 语句:可以完全终止当前循环。如果你从 for 或 while 循环中终止循环,任何对应的循环 else 块将不执行。
- continue 语句:可以跳过执行当前循环体中的剩余语句,然后继续进行下一次的循环。
注意:
- 如果循环后面使用一个 else 语句,那么在循环过程中遇到了 break 语句,则会终止循环,此时不会执行 else 子句。
- 对于嵌套的循环结构来说,break 语句只会终止所在循环体的执行,而不会作用于所有的循环体。
- break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下跳出循环体。
示例代码如下:
for sex in range(0, 3):
match sex:
case 1:
n = 1
while n <= 2:
print("我是男" + str(n) + "号")
n += 1
case 0:
for letter in 'female':
if letter == 'a':
continue
pass
print('执行 pass 块')
print('当前字母 :', letter)
case _:
break
print("未知")
else:
print("-----执行完毕-----")
三、其他语句
1、pass语句
pass 是 Python 中的关键字,pass是空语句,用来让解释器跳过此处,什么都不做。是为了保持程序结构的完整性。
pass 语句不做任何事情,一般用做占位语句或者放一条语句。有时使用 pass 语句比使用注释更加优雅。
使用 pass 语句非常简单,示例代码如下:
for letter in 'female':
if letter == 'a':
pass
print(' ->> 执行 pass 块')
print('当前字母 :', letter)
– 求知若饥,虚心若愚。