【Python学习第三篇】之Python中的流程控制语句
👨🎓博主简介
🏅云计算领域优质创作者
🏅华为云开发者社区专家博主
🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗

前言
这里写代码的工具为:PyCharm 2022.3.3
Python 版本为:3.8.5
工作平台:Windows
回顾上节
上一节,我们介绍了Python的基础语法,包括:print()输出、代码缩进、代码行、注释、多行注释、空字符串、形符等。
还有Python的变量。Python是一种动态类型的编程语言,这意味着当你创建一个变量时,不需要提前声明它的数据类型。Python会自动处理这种情况,并在需要时进行类型转换。
Python的数据类型包括:数字、整数、布尔值、浮点数、复数、字符串。
一、流程控制图解

流程控制操作 | 说明 |
---|---|
if 判断语句 | 根据条件处理数据,支持多个条件分支 |
for 循环 | 对多个元素的数据进行循环处理,直到所有的数据处理完毕 |
while 循环 | 在一定条件下循环处理数据,不满足则退出,满足则无限死循环 |
break 语句 | 退出循环 |
continue 语句 | 跳过此循环进入下次循环 |
pass 语句 | 不做任何事,相当于占位符 |
with 语句 | 管理上下文资源,用于处理文件操作、数据库连接、网络连接、锁对象等需要在使用后明确释放的资源 |
raise 语句 | 用于引发异常的关键字,它允许你在代码中明确地引发异常,以便在特定条件下触发异常处理过程 |
try 异常处理 | 用于异常处理的关键字,它用于定义一段可能引发异常的代码块,然后使用 except 子句来捕获并处理这些异常 |
二、if 条件判断
大家都知道在学习编程中,不管哪门语言都会有:判断、循环语句;而判断语句呢就是我们所有语言中通用的if
判断。
if 语句的语法结构
# 单条件判断:只判断有
if <条件>:
执行内容
# 单条件判断:判断true是什么样的,false是什么样的
if <条件1>:
执行内容
else:
执行内容2
# 多条件判断:只要满足其中一条即可
if <条件1>:
执行内容
elif <条件2>:
执行内容
else:
执行内容
多条件判断的执行逻辑为:如果<条件1>为真,那么就输出<条件1>的执行内容,然后退出判断;
如果<条件1>为假,<条件2>为真,那么就输出<条件2>的执行内容,然后退出判断;
如果<条件1>和<条件2>都为假,那么就执行else。
if 判断示例:
- 当只有一个条件时
当然这个基本不会使用到
if True:
print("正确")
# 输出结果就为:正确
- if - else 判断一个输出的值是否大于50,如果大于50,就输出大于50,如果小于50,就输出,没有机会了;
num=int(input("请输入一个数字:"))
if num >= 50:
print("数字是大于50的")
else:
print("数字是小于50的,没有机会了")

- if - elif - else 多重判断判断一个年龄;大于等于0岁,小于6岁,输出:“还是一个未成年的小朋友!”;大于等于6岁,小于18岁,输出:“还是一个未成年人哦!!”;大于等于18岁,输出:“已经成年了!!!”;其他输出:"请输入正确的年龄“;
age=int(input("请输入一个年龄:"))
if age >= 0 and age < 6:
print("还是一个未成年的小朋友!")
elif age >=6 and age < 18:
print("还是一个未成年人哦!!")
elif age >= 18:
print("已经成年了!!!")
else:
print("请输入正确的年龄")
- if - elif - elif - else 多重判断,判断成绩:低于60分的为不及格,大于等于60分小于80分为及格,大于等于80分小于90为优秀,大于的呢关于90分小于100分特优,不为数字的默认就会抛出异常,如果大于100或者小于0的都将输出:请输入正确的数字;
num=int(input("请输入您的成绩:"))
if num < 60 and num >= 0:
print("成绩不合格!当前成绩为:%s" %num)
elif num >= 60 and num < 80:
print("成绩合格!当前成绩为:%s" %num)
elif num >= 80 and num < 90:
print("成绩已经很优秀啦! 当前成绩为:%s" %num)
elif num >= 90 and num <= 100:
print("成绩为特有!!!当前成绩为:%s" %num)
elif num > 100 or num < 0:
print("请输入正确的成绩,您当前输入的数为:%s" %num)
else:
print("请输入正确的数字,您当然输入的结果为:%s" %num)
- 嵌套 if 判断,还是使用上面的成绩,在成绩为100时添加一个:”您的成绩是100分啊,太优秀了。“
num=int(input("请输入您的成绩:"))
if num < 60 and num >= 0:
print("成绩不合格!当前成绩为:%s" %num)
elif num >= 60 and num < 80:
print("成绩合格!当前成绩为:%s" %num)
elif num >= 80 and num < 90:
print("成绩已经很优秀啦! 当前成绩为:%s" %num)
elif num >= 90 and num <= 100:
print("成绩为特有!!!当前成绩为:%s" %num)
if num == 100:
print("您的成绩是100分啊,太优秀了。")
elif num > 100 or num < 0:
print("请输入正确的成绩,您当前输入的数为:%s" %num)
else:
print("请输入正确的数字,您当然输入的结果为:%s" %num)

- 如果表达式比较长,可以使用圆括号括起来:
a=10
b=4
if (a>10 or b<10 or a<b):
print(1)
# 输出结果为:1
如果 a>10 不成立
或者 b<10 成立
或者 10<4 不成立
这是or或者,满足其中一条即可;
- 对于一个简单的 if 判断,可以使用一行代码就可以完成:
a=29
if a >= 18: print("已经成年了")
- if 判断也可以使用推导式来写:
age=90
tui = "成年人" if age >= 18 else "未成年"
print(tui)
if 判断总结:
简单来说就是不管是多重判断还是单个还是两个判断,只要满足优先级(层级)最高的一条,则停止;
就比如我1没满足,2满足了,那么就停止;
1没满足,2没满足,也没有3,那就就是输出else的值,然后停止。
三、for 循环
for 循环简单来说就是,我要循环1-5,在for循环时写一个range(5),就会从中每次取一个值,从0开始,知道循环完,也就是到4。详情请看示例一。
一般我们有固定值的时候,也就是上面的我要循环1-5,可以使用range(),它是一个典型的可迭代对象的场景。
for循环一般用于遍历可迭代对象(如列表、元组、字符串、字典等)的元素。
如果for循环中的变量不会再逻辑代码中,可以使用下划线标识符(_)代替,这是一个比较常见的规范的写法。
for 循环的语法结构
for 变量 in 可迭代对象:
# 执行循环体内的代码
下面是关于for循环语法结构的详细说明:
for
是关键字,用于标识一个for循环的开始。变量
是一个用于迭代的变量名,它会依次代表可迭代对象中的每个元素。你可以自己命名这个变量,通常取一个描述性的名称,以便理解迭代的含义。in
用于分隔变量和可迭代对象。可迭代对象
是需要遍历的集合,它可以是列表、元组、字符串、字典等。- 冒号
:
用于标识for循环的开始,后面的缩进代码块称为循环体。循环体中的代码会在每次迭代中执行。 - 循环体中的代码会重复执行,直到可迭代对象中的元素都被处理完。
for 循环示例:
- 示例1:循环输出数字1-5
for i in range(5):
print("当前是:%s" %i)
# 结果为:0-4
# 如果不想要0-4,想要1-5,我们可以:
i = 0
for i in range(5):
i += 1
print("当前是:%s" %i)
# 结果就是:1-5了
问:为什么写一个i += 1就变成了 1-5了呢?
答:因为,i=0,默认也是i=0,但是到了i += 1,就是 i = i+1,所以就是,循环第一次的时候:0+1=1,所以从1开始了就。
- 示例2:for循环输出三遍文字,但我在文中不会用到变量;
for _ in range(3):
print("重要的事说三遍,没有用到变量的时候可以使用下划线代替 _")

- 示例3:如果迭代完还有必须执行的逻辑,可以加一个
else:
,与for语句平行缩进,和if一样;
for i in [1,2,3,4,5]:
print(i,end=" ")
else:
print("执行结束了!")
# 结果为:1 2 3 4 5 执行结束了!
如果迭代的每个变量都可以拆开,可以在<变量>处定义相同数量的变量,如对于字典可以定义k,v,然后在<逻辑代码>中分别使用k和v代表键和值。
- 示例4: 迭代字典(此处超纲,可以先了解)
tom={'name': 'Tom','age': 14,'hight': '188'}
for k,v in tom.items():
print(k,v)
# 输出结果为:
name Tom
age 14
hight 188
- 示例5:迭代列表(此处超纲,可以先了解)
tom=[('name','Tom'),('age',18),('higth',188)]
for k,v in tom:
print(k,v)
# 输出结果为:
name Tom
age 18
higth 188
示例4
与 示例5
相比较,重点在于;
字典在for循环中需要写成:tom.items()
,而列表只需要写 tom
即可。
- 示例6:for循环嵌套if判断,当循环的值等于10的时候就输出
for i in range(1000):
if i*2 -i == 10:
print(i)
# 所以结果是:10
for 循环总结:
for 循环简单来说就是,我要循环1-5,在for循环时写一个range(5),就会从中每次取一个值,从0开始,知道循环完,也就是到4。
还有就是,for循环和if判断结合,我在循环1-5的时候,如果是3则跳过或者停止;这个在下面会讲到。
四、while 循环
在Python中,while
循环用于在满足某个条件时重复执行一段代码。只要条件为真(True),循环就会继续执行。一旦条件变为假(False),循环就会停止。
以下是while
循环的语法结构:
while 循环的语法结构
while condition:
# 代码块(要重复执行的代码)
这里的condition
是一个表达式,其结果为真(True)或假(False)。
当condition
为真时,循环体中的代码会被执行。每执行完一次循环体,Python会重新评估condition
。只要condition
保持为真,循环就会继续。
while 循环示例:
下面是一个简单的示例,演示如何使用while
循环来打印从1到5的数字:
count = 1
while count <= 5:
print(count)
count += 1
在这个例子中,我们初始化了一个变量count
,并将其设置为1。然后,我们使用while
循环检查count
是否小于或等于5。如果是,我们就打印出count
的值,并将count
增加1。这个过程会一直重复,直到count
的值超过5,此时while
循环的条件变为假,循环停止。
注意:在使用
while
循环时,务必确保循环有一个明确的退出条件,否则循环可能会无限执行下去,导致程序陷入死循环。所以while
也有一个别称叫无限死循环
;
- 使用while写一个数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
guess = int(input("请输入你猜的数字:"))
if guess == number:
print("恭喜,你猜对了!")
elif guess < number:
print("猜的数字小了...")
elif guess > number:
print("猜的数字大了...")
这里的数值是写死的,我们也可以利用python中自带的内置函数,来让数字变为随机,我们去猜!
- 使用内置函数随机生成数字,并猜数字
random
模块是用来生成随机数的,当然,主要就是用于生成不同类型的随机数,如果想要具体的了解可以去百度自行搜索;
以下是
random
模块中一些常用的函数:
random()
:生成一个(0.0, 1.0)之间的浮点数。randint(a, b)
:生成一个(a, b)之间的整数,包括a和b。randrange(a, b)
:生成一个(a, b)之间的整数,包括a但不包括b。choice(seq)
:从序列seq
中随机选择一个元素。shuffle(seq)
:将序列seq
中的元素随机排序。
注意:random
模块生成的伪随机数并不是真正的随机数,而是根据一个种子值生成的。如果需要生成真正的随机数,需要使用专门的硬件设备或其他随机数生成器。
import random
number = random.randint(1, 100)
guess = -1
print("数字猜谜游戏!")
while guess != number:
guess = int(input("请输入你猜的数字:"))
if guess == number:
print("恭喜,你猜对了!")
elif guess < number:
print("猜的数字小了...")
elif guess > number:
print("猜的数字大了...")
while 循环总结:
在Python中,
while
循环用于在满足某个条件时重复执行一段代码。只要条件为真(True),循环就会继续执行。一旦条件变为假(False),循环就会停止。
注意:在使用while循环时,务必确保循环有一个明确的退出条件,否则循环可能会无限执行下去,导致程序陷入死循环。所以while也有一个别称叫无限死循环
;
五、流程控制语句
5.1 break 语句
break
可以实现终止循环。经常出现于 for 循环
、 while
循环所嵌套的代码中,但不会出现于这些循环内部的函数或类定义所嵌套的代码中。break
会终止最近的外层循环,而continue
语句只结束本次循环,继续执行最近的外层循环的下一轮次。
- 示例:循环输出10000个值,到第五个的时候停止循环;
for i in range(10000):
if i > 4:
print("当前为:%s" %i)
break
else:
pass
# 输出结果为5,因为是从0开始算,到5的时候停止。
此循环判断中运用了4个知识点:for循环、if判断、break停止、pass占位符(什么都不输出);
5.2 continue 语句
continue 语句
是属于跳过语句,可以在执行这条循环之后,再次执行最外层的循环;所以就如上面所说,continue 语句
只结束本次循环,还会继续执行最近的外层循环的下一轮次。
- 示例:循环输出5个值,跳过第三个值;
a = 0
while a < 5:
a += 1
if a == 3:
continue
print(a,end=' ')
# 结果为:1 2 4 5;循环a,到3的时候跳过,继续循环。
print()
i = 0
for i in range(5):
i += 1
if i == 3:
continue
print(i,end=" ")
# 结果是:1 2 4 5;
5.3 pass 语句
pass语句:pass
是一个空操作语句,用于在语法上需要一个语句,但程序不需要任何操作时。它用于在代码中占位,以便将来添加实现。
例如,如果你正在定义一个新的函数或类,但还没有为其编写任何代码,你可以使用pass
语句作为占位符。这样,你的代码将不会引发缩进错误。
- 以下是两个个使用
pass
语句的例子:(普通if判断+函数)
a = 100
if a < 60:
print("不及格")
elif a >= 60 and a <= 100:
print("及格")
else:
pass
# 结果为及格
最后不想输出其他字符,就可以使用pass来占用,避免报错;虽然if不写else也没什么问题,但是这里是举例;
- 函数举例
def my_function():
pass # 这里将来会添加函数的实现
class MyClass:
pass # 这里将来会添加类的属性和方法
在这个例子中,my_function
和MyClass
都没有实际的实现,但是使用pass
语句可以让代码在没有实现的情况下仍然保持语法正确。这样,你可以在后续的开发过程中逐步添加实现。
六、异常处理
异常是什么?
异常就是再写代码中出现的一些报错信息。
6.1 try-except 语句
try语句在python中主要是用来处理异常的,是非常好的一种处理方式:
- try的语法结构为:
try:
<语句>正常运行的代码
except <错误类型1>:
<语句>在异常的时候会执行此处代码
except <错误类型2>:
<语句>在异常的时候会执行此处代码
else:
<语句>如果没有异常发生
finally:
<语句>有没有抛出异常都会执行
七、raise 语句
八、with 语句
九、小结
本节主要讲了:
讲到这里就完成了第三篇《python中的流程控制语句》,接下来我还会持续输出Python学习文章,大家可以订阅我的专栏:《python 学习》
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗
下面为结合本章的知识来提出的一些案例实战,可能会有超纲的内容,可以先大概的看一下,等到学完,我会专门整理一个所有课程案例实战的文章,供大家参考,到时候看所有案例都知道是什么意思了。