一、条件判断介绍
Python的选择结构通过条件判断实现。例如,如果年满18岁,就成年了,否则就是未成年,这就是条件判断。所有条件最终都只会使成立或者不成立两种状态,即要么是True,要么是False。也可以直接使用True或者False作为条件,因此可以理解所有条件的结果最终都是布尔值,只是分为显示布尔值和隐式布尔值。
1.1、显示布尔值
通过判断得到的布尔值或者直接使用的布尔值叫做显示布尔值。我们通过示例来说明下:
a = 20
a > 18
这个示例中,a > 18 得到的结果是 True,它就属于显式布尔值。
1.2、隐式布尔值
所有的值都可以当成布尔值去用,所有的值都是隐式布尔值。绝大多数的值都是True,为Flase的值记住三个就可以了,分别是0、None、空(包括空字符串、空列表、空字典)
二、条件判断实现
条件判断通过if 语句实现,Python的语法比较灵活,if语句有多种形式。
2.1、if语句形式一
if语句的第一种形式如下,if语句后边接条件,如果成立就执行子代码块,子代码块缩进四个空格。如果不成立就直接直接下边其他的代码。
if 条件:
代码
...
我们来看一个示例:
a = 20
if a > 18:
print('小a已经成年了哦')
print('判断结束了')
这个示例的运行会先打印,‘小a已经成年了哦’,然后打印 ‘判断结束了’。 即添加成立就运行子代码块,子代码库运行结束再继续执行后续的子代码块。如果 a = 16。 输出结果只会打印 ‘判断结束了’。这里读者可以自行测试验证。
但是如果需求如果条件不成立,输出还没成年。这种形式就不能实现了。需要用到if语句的多条件判断形势。
2.2、if语句形式二
if语句的第二形式如下:
if 条件:
代码
...
else:
代码
...
我们还是拿上边的示例:
a = 20
if a > 18:
print('小a已经成年了哦')
else:
print('小a没成年')
print('判断结束了')
这个实例会判断 a是否大于18,如果为true,就打印成年,否则就打印未成年,最后打印’判断结束了’
2.3、if语句形式三
在有些需求中,判断并不是非此即彼的。例如考试,如果大于80为优秀,大约60为及格,小于60为不及格。通过形式二就无法实现。这时就需要第三种形式:
if 条件:
子代码块
elif 条件2:
子代码块
elif 条件3:
子代码块
else:
子代码块
这里的elif条件判断可以写无限多个,取决于有多少种可能得情况。最后的else也可以不加。我们看一下示例:
a = 78
if a > 80:
print('优秀')
elif a > 60:
print('及格了')
else:
print('不及格')
这个代码运行的结果是及格了。 需要说明下的是,这个结构从上往下判断,如过遇到成立的条件就执行对应的子代码块,后续的条件就不再进行判断了。如果都不成立就会运行else语句下的子代码块,你可以通过修改a的值测试运行不同的判断分支。
四、扩展
如果你学过其他编程语言,就会知道许多语言支持一种叫做case..when的语法。这种语法比if语句的多条件判断可读性更好。在Python的老版本中,并没有支持这种语法。但是在Python10版本中,支持了match语法,可以实现针对某个变量的若干种匹配功能。match语法也叫模式匹配,我们在下一篇文章中进行介绍。
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付
