在上一篇文章中,我们学习了布尔表达式中的布尔数、比较运算和逻辑运算。
如图所示,布尔表达式表示了两类结果, True 还是 False。
相信你肯定有这样的疑问,这些布尔表达式有什么作用呢?其实,主要的用处是在判断语句中。
一.单向选择的判断
判断在计算机世界里无处不在。
比如打开某个 App 时,程序会做一个是否已注册的判断。
如果已注册(True),那么进入首页。如果未注册(False),那么进入注册页面。
程序需要判断 App 是否被点击,判断用户是否已注册,根据不同的条件触发不一样的动作。
在编程语言中,可以用“判断语句”来处理这类判断问题。
判断语句
- 定义:判断语句是程序的三大语句结构之一。
它的作用是根据判断的条件是否成立(真或假),来决定后续代码执行顺序。
# 赋值变量yourage
yourage = 20
# 赋值变量myage
myage = 18
# if判断如果yourage 大于myage
if yourage > myage:
# 那么使用print()输出“你的年龄比我大”
print("你的年龄比我大")
这段代码演示了一个简单的判断语句。它将两个人的年龄进行了比较判断。
下面我们来学习判断语句的具体写法。
- if
使用 if (中文翻译为如果),表明我们要在这里进行语句判断。 - 判断条件
if 后的判断条件通常是一个布尔表达式。
即该表达式有两种结果:True 或 False。
本例中,yourAge > myAge 的运算结果为 True。 - 冒号
判断语句的固定格式,用来表示这行判断条件的结束。 - 四个空格
我们用四个空格标记当 if 判断条件为True(真)时,需要执行的语句。
在这里,我们先记住这个格式,稍后会讲解这里空四格的原因。 - 执行部分
if 判断条件为True(真)时,程序就会执行if 判断内的代码。
在这里我们使用 print() 语句输出"你的年龄比我大"
执行顺序
我们把 if 判断的执行顺序,梳理成流程图后,再来整理一下运行流程。
- 第一种情况,程序运行到 if 判断时,如果条件为真,则进入执行部分;完成后,程序接着运行 if 判断下面的代码。
- 第二种情况,程序运行到 if 判断时,如果条件为假,程序就直接跳开 if 判断的执行部分,运行后面的代码。
小示例:
给一个变量 myScore 赋值50,如果 myScore 小于60,则输出“挂科了”,再运用格式化输出“你的分数是{myScore}”。
myScore = 50
if myScore < 60:
print("挂科了")
print(f"你的分数是{myScore}")
二.关键字
前面有提到 if 是关键字,那什么是关键字呢?
关键字是 Python 中一些已经被赋予特定意义的单词,不能被用来作为变量名,函数名,类名等(函数和类后面会讲到)。
- 定义:关键字是程序语言中有特殊意义的单词,它们都不能被当作变量名使用。
在我们已经学过的知识里,and,or,not,True,False都是关键字。
此外,由于变量名区分大小写,所以 if 不能作为变量名,但 IF 、If、iF可以。
三.缩进
很好,现在你已经了解了 if 判断的基本用法。
由前文可知,满足 if 条件后执行的每行代码前都会有四个空格,这四个空格在 Python 中叫做“缩进”。
- 定义:定义
Python 中不同层级的代码之间强制要求缩进,并且相同层级的代码要求缩进的空格数量一致。
在这里的图中第 1 到 3 行代码属于同一层级,第 4 和第 5 行代码属于同一层级。
在Python中,缩进的数量不做强制的要求,可以 1 个空格,可以 2 个空格。
这里还是建议每个缩进用 4 个空格,这是一种比较美观易读的代码风格。
四.代码块
那我们在什么情况下,才需要缩进代码呢?
首先,我们需要知道连续缩进且空格数量相同的代码称为一个“代码块”。
而同一代码块中的代码需要遵守代码的默认执行顺序,即自上而下执行。
通过前面的学习我们知道了,if 判断后面跟随条件,如果条件成立,程序执行归属于 if 判断的一个代码块。
这时候就需要使用缩进组织代码块,区分代码的层级。
在连续的多个 if 判断中,每一个 if 判断内都有一个代码块。
只有当 if 条件成立时,程序才会执行这个 if 判断里面的代码块。
如果条件不成立,程序就会跳开这个 if 判断,继续运行接下来的代码。
五.多个if判断
之前的学习中,我们只考虑了在判断单个条件的情况下,代码该如何编写。
假设,这时需要多个判断条件,该如何编写代码呢?
例如:Tony的年龄是12岁,Kevin的年龄是11岁。判断谁的年龄更大,然后输出他的名字。
我们需要考虑两种情况:
-
如果 Tony 比 Kevin 大,输出 Tony 的名字;
-
如果 Tony 比 Kevin 小,输出 Kevin 的名字。
在这里,连续使用两个 if 判断就可以得到结果,编写出来的代码如下
tonyage = 12
kevinage = 11
if tonyage > kevinage:
print("Tony")
if tonyage < kevinage:
print("Kevin")
————————————————————————————
现在,我们就学习完了 if 判断基本结构和编写方法。
同学们在刚接触 if 判断时,最容易出现以下两种 bug:
- 缩进问题
同一代码块缩进需要保持一致,建议每个缩进用 4 个空格。 - 语法错误
if 判断中,布尔表达式后面的冒号常常被遗漏,这是判断语句的固定格式。
小结
if 判断语句需要大量用到逻辑运算里的 True 和 False。
比如“你注册了么”,“今天天气是不是晴天”,“你的年纪是不是比我大”等等。
所以判断语句和比较运算、逻辑运算的联系是非常紧密的。
比如我们想要趁双十一打折买一个耳机,就需要考虑两个条件:
第一,是否是“双十一促销”。
第二,我账户余额够不够。
判断这种现实生活中的问题往往不只一个条件。
有了判断语句,我们就可以打破代码的默认执行顺序了(按由上至下的顺序执行)。
如图,两段代码里都有一行代码是不会执行的。
判断语句“里面”的代码块只有当判断布尔表达式为真的时候才会执行。
通过判断语句,我们可以让程序按照不同条件自动化执行任务。
比如你在网上买了一件商品,在支付环节可以选择银联、支付宝或微信进行支付。
这个时候你的不同点击动作都会成为执行不同判断语句的依据。
感谢阅读~