Python第5课 单向选择的判断

在上节课中,我们学习了布尔表达式中的布尔数、比较运算和逻辑运算。

如图所示,布尔表达式表示了两类结果, True 还是 False。

相信你肯定有这样的疑问,这些布尔表达式有什么作用呢?其实,主要的用处是在判断语句中。

判断在计算机世界里无处不在。

比如打开某个 App 时,程序会做一个是否已注册的判断。

如果已注册(True),那么进入首页。如果未注册(False),那么进入注册页面。

程序需要判断 App 是否被点击,判断用户是否已注册,根据不同的条件触发不一样的动作。

在编程语言中,可以用“判断语句”来处理这类判断问题。

判断语句 Judgment Statement

定义:

判断语句是程序的三大语句结构之一。

它的作用是根据判断的条件是否成立(真或假),来决定后续代码执行顺序。

隐喻:

判断语句如同在岔路口做选择。不同的选择会带来不同的路径及结果。

答案:D,因为ABC都意味着不同的选择会带来不同的结果,而D不能选择。

C选项错误。

不属于判断语句。


这段代码演示了一个简单的判断语句。它将两个人的年龄进行了比较判断。

下面我们来学习判断语句的具体写法。


if判断 If Statement

代码的作用

这段代码将两个人的年龄进行判断,并且输出了结论。

第1行和第2行代码,将年龄分别赋值给两个变量。

第4行代码将两个变量进行判断。

第5行代码,输出”你的年龄比我大”。

yourAge =  20
myAge = 18

if yourAge > myAge:    
    print("你的年龄比我大")

执行顺序

我们把 if 判断的执行顺序,梳理成流程图后,再来整理一下运行流程。

第一种情况,程序运行到 if 判断时,如果条件为真,则进入执行部分;完成后,程序接着运行 if 判断下面的代码。

第二种情况,程序运行到 if 判断时,如果条件为假,程序就直接跳开 if 判断的执行部分,运行后面的代码。

代码小结

通过以下格式在代码中使用 if 判断语句


答案:C
答案:C
答案:A

B 选项正确。

注意,在这里条件是不成立的,所以程序不会运行print(“我的年龄比你大”),会直接运行print(“我们是同学”)。

题目

给一个变量 myWeight 赋值70.5,另一个变量 yourWeight 赋值81.3。

如果 myWeight 小于 yourWeight,则输出 “You are heavier than me.”。Tips: 别忘了,在执行语句前面加4个空格。

myWeight = 70.5
yourWeight = 81.3
if myWeight < yourWeight:
    print("You are heavier than me.")

题目

给一个变量 myScore 赋值50,如果 myScore 小于60,则输出“挂科了”,再运用格式化输出“你的分数是{myScore}”。

myScore = 50
if myScore < 60:
    print("挂科了")
print(f"你的分数是{myScore}")

前面有提到 if 是关键字,那什么是关键字呢?

关键字是 Python 中一些已经被赋予特定意义的单词,不能被用来作为变量名,函数名,类名等(函数和类后面的课程会讲到)。


关键字 Keyword

定义:关键字是程序语言中有特殊意义的单词,它们都不能被当作变量名使用。

在我们已经学过的知识里,and,or,not,True,False都是关键字。

此外,由于变量名区分大小写,所以 if 不能作为变量名,但 IF 、If、iF可以。


A 选项错误。

and、or、not是关键字,不可以作为变量使用。

C 选项正确。

变量名区分大小写,if 不能作为变量名,但 IF 、If、iF可以。

B 选项正确。

A、C 选项中 and 和 if 是关键字,D 选项中 == 用于判断引用变量的值是否相等。


很好,现在你已经了解了 if 判断的基本用法。

由前文可知,满足 if 条件后执行的每行代码前都会有四个空格,这四个空格在 Python 中叫做“缩进”。

缩进 Indentation

定义:Python 中不同层级的代码之间强制要求缩进,并且相同层级的代码要求缩进的空格数量一致。
在这里第 1 到 3 行代码属于同一层级,第 4 和第 5 行代码属于同一层级。

在Python中,缩进的数量不做强制的要求,可以 1 个空格,可以 2 个空格。

我们会建议每个缩进用 4 个空格,这是一种比较美观易读的代码风格。

C选项正确。

第三行代码缩进的空格数量与上两行不一致,形成了不同层级的代码。


那我们在什么情况下,才需要缩进代码呢?

首先,我们需要知道连续缩进且空格数量相同的代码称为一个“代码块”。

而同一代码块中的代码需要遵守代码的默认执行顺序,即自上而下执行。


代码块 Code Block

定义:

同一层级的代码集合叫做代码块,代码块中的代码会按由上至下的顺序执行。

在 Python 中,通过缩进来划分代码块。

通过前面的学习我们知道了,if 判断后面跟随条件,如果条件成立,程序执行归属于 if 判断的一个代码块。

这时候就需要使用缩进组织代码块,区分代码的层级。

在连续的多个 if 判断中,每一个 if 判断内都有一个代码块。

只有当 if 条件成立时,程序才会执行这个 if 判断里面的代码块。

如果条件不成立,程序就会跳开这个 if 判断,继续运行接下来的代码。

D选项正确。

用相同的缩进来标记处于同一个层级的代码块,因此A、B、C项是错误选项。

B 选项描述正确。

在 Python 中,通过缩进来划分代码块。代码块中的代码会按由上至下的顺序执行。

题目:

给一个变量 todayDate 赋值 20210121,如果 todayDate 与 20210121相等,则使用print()语句输出以下内容:
昨天是2021年1月20日
今天是2021年1月21日
明天是2021年1月22日
todayDate = 20210121
if todayDate == 20210121:
    print("昨天是2021年1月20日")
    print("今天是2021年1月21日")
    print("明天是2021年1月22日")

多个if判断

之前的学习中,我们只考虑了在判断单个条件的情况下,代码该如何编写。

假设,这时需要多个判断条件,该如何编写代码呢?

例如:Tony的年龄是12岁,Kevin的年龄是11岁。判断谁的年龄更大,然后输出他的名字。

我们需要考虑两种情况:
1. 如果 Tony 比 Kevin 大,输出 Tony 的名字;

2. 如果 Tony 比 Kevin 小,输出 Kevin 的名字。

在这里,连续使用两个 if 判断就可以得到结果,编写出来的代码如图所示。

题目:

谁的年龄更大

Tony的年龄是12岁,Kevin的年龄是11岁。让程序判断谁的年龄更大,然后输出他的名字。

1.将12赋值给tonyAge,将11赋值给kevinAge;
2.判断tonyAge与kevinAge的大小;
3.谁的年龄更大就输出他的名字。

tonyAge = 12
kevinAge = 11
if tonyAge > kevinAge:
    print("Tony")
if tonyAge < kevinAge:
    print("kevinAge")

现在,我们就学习完了 if 判断基本结构和编写方法。

同学们在刚接触 if 判断时,最容易出现以下两种 bug:

1. 缩进问题
同一代码块缩进需要保持一致,建议每个缩进用 4 个空格。

2. 语法错误
if 判断中,布尔表达式后面的冒号常常被遗漏,这是判断语句的固定格式。
本课总结

if 判断语句需要大量用到逻辑运算里的 True 和 False。

比如“你注册了么”,“今天天气是不是晴天”,“你的年纪是不是比我大”等等。

所以判断语句和比较运算、逻辑运算的联系是非常紧密的。

比如我们想要趁双十一打折买一个耳机,就需要考虑两个条件:

第一,是否是“双十一促销”。
第二,我账户余额够不够。

判断这种现实生活中的问题往往不只一个条件。

有了判断语句,我们就可以打破代码的默认执行顺序了(按由上至下的顺序执行)。

如图,两段代码里都有一行代码是不会执行的。

判断语句“里面”的代码块只有当判断布尔表达式为真的时候才会执行。

通过判断语句,我们可以让程序按照不同条件自动化执行任务。

比如你在网上买了一件商品,在支付环节可以选择银联、支付宝或微信进行支付。

这个时候你的不同点击动作都会成为执行不同判断语句的依据。

本节课学习了单向选择的判断。

我们来总结一下本课的知识点:

题目

小明可以买鞋吗?

小明想买一双标价(price)为500元的鞋,钱包里余额(balance)是600元,他可以购买吗?
可以购买输出字符串yes,不可以购买输出字符串no。
price = 500
balance = 600
if price < balance:
    print("yes")
if price > balance:
    print("no")

题目

今天需要跑步吗?

如果路飞吃鸡腿(drumStick)吃的太多,就会变成一个胖子,所以当他一天内吃5个以上(不包括5)鸡腿时当天就要跑步。
在一个阳光灿烂的日子里,路飞吃了3个鸡腿,他今天需要跑步吗?需要跑步输出yes;不需要跑步输出no。
最后,再运用格式化输出:
今天吃了{drumStick}个鸡腿
例如,他今天吃了10只鸡腿,得到的输出如下:

yes
今天吃了10个鸡腿
drumStick = 3
if drumStick > 5:
    print("yes")
if drumStick < 5:
    print("no")
print(f"今天吃了{drumStick}个鸡腿")

题目

直角三角形

已知一个三角形的边长分别为495,660,825。
判断这个三角形是否为直角三角形。若是,则输出“是直角三角形”,若不是,则输出“不是直角三角形”。直角三角形的计算公式为:a*a+b*b=c*c
a = 495
b = 660
c = 825
if (a*a) + (b*b) == (c*c):
    print("是直角三角形")
if (a*a) + (b*b) != (c*c):
    print("不是直角三角形")

赞同(1) 打赏
未经允许不得转载:BlogC » Python第5课 单向选择的判断
分享到

评论 抢沙发