【Python语法系列】第三章:Python判断语句

进行逻辑判断,是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能,一个逻辑判断的流程非常简单,我们有一个判断的条件,那么他无非给我们返回两个结果,是或者否,是的话有是的操作,否的话也有否的操作,那这就是一个最为简单的逻辑判断的行为了。

习惯看视频的同学可以看这个免费教程:

https://www.bilibili.com/video/BV1ZK411Q7uX/?vd_source=704fe2a34559a0ef859c3225a1fb1b42&wxfid=o7omF0RELrnx5_fUSp6D59_9ms3Y

为什么学习判断语句

判断在程序中广泛应用,如果没有它,我们生活中的非常多的操作都难以实现。比如下面这些:

那么这一系列功能的实现呢,也都是基于程序中的判断功能,判断是程序最基础,最核心的,逻辑功能。

布尔类型和比较运算符

学习目标

  • 掌握布尔类型用于表示:真和假

  • 掌握比较运算符用于计算:真和假

布尔类型

进行判断,只有2个结果:是或者否。程序中,如何描述:是或否呢?答案是使用:布尔类型。 Python中常用的有6种值(数据)的类型:

布尔类型的定义

布尔类型的字面量:

  • True  表示真(是、肯定)

  • False 表示假(否、否定)  

定义变量存储布尔类型数据: 变量名称 = 布尔类型字面量 布尔类型不仅可以自行定义,同时也可以通过计算得来。 也就是使用比较运算符进行比较运算得到布尔类型的结果。

比较运算符

那什么叫做比较运算符,什么又叫比较运算呢?我们看下面一个例子:

result = 10 >5
print(f"10>5的结果是:{result},类型是:{type(result)}")

输出的结果是:

10>5的结果是:True,类型是:<class 'bool'>

可以看到它的值是True表示真,也就是10大于5是成立,同时它的类型是bool类型。

再看一个例子:

在这个运算里面,我们所使用到的大于号就是所谓的比较运算符了,我们可以通过比较运算符去做值的比较来完成bool的结果。

bool_1 = True
bool_2 = False
print(f"bool_1变量的内容是:{bool_1}, 类型是:{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2}, 类型是:{type(bool_2)}")

输出结果:

bool_1变量的内容是:True, 类型是:<class 'bool'>
bool_2变量的内容是:False, 类型是:<class 'bool'>

在Python中比较运算符主要有6类:

运算符

描述

示例

==

判断内容是否相等,满足为True,不满足为False

如a=3,b=3,则(a == b) 为 True

!=

判断内容是否不相等,满足为True,不满足为False

如a=1,b=3,则(a != b) 为 True

>

判断运算符左侧内容是否大于右侧满足为True,不满足为False

如a=7,b=3,则(a > b) 为 True

<

判断运算符左侧内容是否小于右侧满足为True,不满足为False

如a=3,b=7,则(a < b) 为 True

>=

判断运算符左侧内容是否大于等于右侧满足为True,不满足为False

如a=3,b=3,则(a >= b) 为 True

<=

判断运算符左侧内容是否小于等于右侧满足为True,不满足为False

如a=3,b=3,则(a <= b) 为 True

那么基于这6个运算符我们就可以去做非常丰富的内容的比较了,通过内容的比较,去完成bool结果的获取。

if语句的基本格式

学习目标

  • 掌握逻辑判断语句(if)的基本语法格式

  • 掌握布尔类型数据,在判断语句中的作用

if判断语句

  • 生活中的判断:

在生活中如果要进行判断的话,流程还是非常简单的,我们有一个假定条件,如果他成立的话,我们就会做一些动作。

比如:如果小美喜欢我,明天我就去表白,那么在这里面小美是否喜欢我,这是一个判断的条件,如果它成立的话,那么我明天去表白就是相应的动作了。

  • 程序中的判断:

那在程序中如何做呢,其实也非常的简单,Python通过if语句来去完成逻辑判断。看一下语法:

if 要判断的条件:
条件成立时,要做的事情

有一些细节同学们千万要注意:

  • “if 要判断的条件” 后的冒号不要丢;

  • 条件成立时,要做的事情 前要有4个空格缩进

看一下下面实例的变量:

# 定义变量
age = 3
# 进行判断
if age >= 18:
print("我已经成年了")

运行一下的话,不会输出任何结果,因为if语句的条件不成立。

那我们来继续再看下方的代码,在这个代码里面,同样是对年龄进行了判断:

age = 18
print(f"今年我已经{age}岁了")
if age >= 18:
print("我已经成年了")
print("即将步入大学生活") # 当if判断条件结果时,当True时,代码会被执行,为False时,代码不会执行

print("时间过的真快呀")

如果我们的判断成立,当age为18时,下面两个print都会输出:

今年我已经18岁了
我已经成年了
即将步入大学生活
时间过的真快呀

那通过这个代码我们会发现,在if的成立条件之后呢,我们可以不仅仅只写一条代码,其实你可以写任意多的代码,想写多少都写多少,但一定要注意,要有4个空格做缩进。

当age为10时,它是不是满足成年的条件,所以说里面的两个printer不会输出。

今年我已经10岁了
时间过的真快呀

但你会发现“时间过得真快啊”最后这个print它依旧是输出了的,这就是我们所说的缩进,前面没有缩进,它和这个if是同级的,那就说明下面这个print,它根本不受if的影响。

而if里的两个print语句,因为他们前面有4个空格缩进,所以说在归属上,它们属于这个if条件,是受到它的条件控制的,那我们如果将age设置为10的时候,你会发现这个条件是不是不成立了,然后我已经成年了,即将步入大学生活,这句话就没有打印出来。

if语句的注意点

最后再强调以下两个注意点:

第一,我们的逻辑判断,比如说age >= 18,这是一个比较运算。 所以说我们if能够运行的前提是你的判断语句的结果,必须是bool类型,True或者False。

第二,冒号千万不要忘记,否则代码就会报错同时,执行条件前面的4个空格缩进也不要忘记。

age = 18
print(f"今年我已经{age}岁了")
if age >18:
print("我已经成年了")
print("即将步入大学生活")
print("时间过的真快")

练习案例:成年人判断

结合前面学习的input输入语句,完成如下案例:

  1. 通过input语句,获取键盘输入,为变量age赋值。(注意转换成数字类型)

  2. 通过if判断是否是成年人,满足条件则输出提示信息,如下:

欢迎来到黑马儿童游乐场,儿童免费,成人收费。
请输入你的年龄:30
您已成年,游玩需要补票10元。
祝您游玩愉快。
写入完成

提示:您已成年,需要补票的信息输出,来自if判断 参考代码如下:

# 获取键盘输入
age = int(input("请输入你的年龄:"))

# 通过if判断是否是成年人
if age >= 18:
print("您已成年,游玩需要买票,10元.")

print("祝您游玩愉快")

if else 语句

学习目标  

  • 掌握if else 语句的组合用法

if满足条件会执行相应的代码语句,如果不满足呢?有没有不满足的情况下,可供执行的代码呢?,if else 语句可以实现。

if else语句

  • 生活中的判断

在生活中,我们经常会有如下的判断:如果满足条件,我就做什么事情;否则,我就去做另一件事情。比如,如果小美喜欢我,明天我就去表白。如果条件不成立,我就去追求。你会发现,满足条件和不满足条件都有对应的行为。  

程序的判断

那这个行为放到代码中如何实现呢,我们通过if else 的组合使用了。

我们看一下基础语法:

首先还是先写上 if ,带上判断的条件带上冒号。在条件满足的时候,我们在里面写上要做的事情。

然后在下面跟if同级的地方我们再写上一个else,表示否则的意思,然后带上一个冒号。在里面我们写上,不满足条件时要做的事情。

那通过这样的语句代码呢,我们就会发现,如果条件满足了,我们就执行if里面的代码,那如果条件不满足,我们就执行else里面的代码,这样不管条件满不满足,我们都会有对应的策略。

if条件:
满足条件时要做的事情1
满足条件时要做的事情2
满足条件时要做的事情3
...(省略)...
else:
不满足条件时要做的事情1
不满足条件时要做的事情2
不满足条件时要做的事情3
...(省略)...

我们在下面呢,同样是刚刚做的幼儿园的案例。

在案例中呢我们对年龄进行判断,如果你满足成年的话我输出:你已成年,游玩需要补票,那如果你不满足的话,我在底下输出:您未成年,可以免费游玩。

那么在这里面这句话条件成立会执行,这句话条件不成立它会执行。

那所以这是一个简单的if else,也就是如果成立或者不成立,代码还是比较简单的:

 
 

print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。")
age=int(input("请输入你的年龄:"))
if age >18:
print("您已成年,游玩需要补票10元。") #条件成立时执行
else:
print("您未成年,可以免费游玩。") # 条件不成立时执行
print("祝您游玩愉快。")

if else语句注意点

首先,我们会发现对于else来说,不需要写判断条件,因为判断条件在if里面就已经写好了,只有在条件不成立的时候,我们就需要进入到else去执行,所以它不需要条件。

第二,if和else末尾的冒号,千万不要忘记了,同时我们else代码块,同样需要4个空格作为缩进哦,这一点和if是一模一样的。

print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。")
age=int(input("请输入你的年龄:"))
if age >18:
print("您已成年,游玩需要补票10元。")
else: # else,不需要判断条件
print("您未成年,可以免费游玩。") # 同样需要4个空格,作为代码的缩进哦
print("祝您游玩愉快。")

练习案例:我要买票吗

案例需求:

通过input语句获取键盘输入的身高

判断身高是否超过120cm,并通过print给出提示信息。

 
 

欢迎来到黑马动物园。
请输入你的身高(cm):111
您的身高未超出120cm,可以免费游玩。
祝您游玩愉快。
写入完成
欢迎来到黑马动物园。
请输入你的身高(cm):111
您的身高未超出120cm,可以免费游玩。
祝您游玩愉快。

参考代码:

# 定义键盘输入获取身高数据
height = int(input("请输入你的身高(cm):"))

# 通过if进行判断
if height > 120:
print("您的身高超出120CM,需要买票,10元。")
else:
print("您的身高低于120CM,可以免费游玩。")

print("祝您游玩愉快")

if elif else

学习目标:

  • 掌握if elif else语句进行多条件判断的语法

某些场景下,判断条件不止一个,可能有多个。这种需求能用Python实现吗? 那肯定是可以的,if elif else 语句就可以实现。

if else语句

  • 生活中的判断

在生活中,我们就会有多条件判断的场景。

比如我有一个条件,如果满足了我会做某个动作,如果这个条件不满足,我还会判断第2个条件,那如果第2个条件不满足,我还会有第3个第4个,第n个条件去判断。除非这些条件通通都不满足,最后我会进入最后一步。

我们举一个实际的案例:如果小美喜欢我,明天我就去表白,如果小美不喜欢我,我还有第二个选择,或者小田喜欢我,我明天也可以去表白,如果她俩都不喜欢我,那我就会选择最后一项,我就去追求小新了。

所以说条件判断,你会发现他有两个条件或者多个条件,小美喜欢我或者说小田喜欢我,只要有一个满足就可以,如果都不满足,我会有不满足的动作。

  • 程序中的判断

那在程序中如何去完成呢,也比较简单:

我们来看下语法,我们通过if,来写上条件1,然后写上条件1满足应该做的事情。

如果条件1不满足怎么办,我们可以通过一个叫做elif的语法,通过这个关键字我们可以写条件2,然后写上条件2满足应该做的事。

条件2不满足,我们还可以继续写无数个elif,写到条件n,然后条件n应该做的事情,从上到下挨个匹配,那如果这些条件通通都不满足,最终会进入到else去执行,这是执行逻辑,还是比较简单的。

if 条件1:
条件1满足应做的事情
条件1满足应做的事情
e1if 条件2:
条件2满足应做的事情
条件2满足应做的事情
elif 条件N:
条件N满足应做的事情
条件N满足应做的事情
else:
所有条件都不满足应做的事情
所有条件都不满足应做的事情

if elif else语句

继续来看我们的黑马动物园的代码,首先我们会做出第一个判断,如果你的身高小于120,你可以免费游玩。

如果你的身高不满足要求怎么办,我会做第二个判断,如果你的VIP级别大于3,也可以免费游玩。

如果你身高高于120,同时VIP级别也小于3,所有条件都不满足,就需要买票了,那这是一个简单的多条件的应用,我们来看代码:

print("欢迎来到黑马动物园。")
height=int(input("请输入你的身高(cm):"))
vip_level=int(input("请输入你的vip级别(1~5):"))
if height < 120:
print("您的身高小于120CM,可以免费游玩。")
elif vip_level > 3:
print("您的vip级别大于3,可以免费游玩。")
else:
print("不好意思,所有条件都不满足,需要购票10元。")
print("祝您游玩愉快。")

if elif else语句注意点

刚刚呢我们完成了代码的演示,现在我们来看看它的使用注意项了。

首先第一点,我们的elif可以组合多个使用,比如说示例代码中,写了两个elif,它又多了一个条件,如果今天是1号那么同样可以免费,这个看起来挺好玩的。

print("欢迎来到黑马动物园。")
height=int(input("请输入你的身高(cm):"))
vip_level=int(input("请输入你的vip级别(1~5):"))
day=int(input("请输入今天的日期(1~30):"))
if height < 120:
print("您的身高小于120CM,可以免费游玩。")
elif vip_level > 3:
print("您的vip级别大于3,可以免费游玩。")
elif day == 1:
print("今天是1号免费日,可以免费游玩。")
else:
print("不好意思,所有条件都不满足,需要购票10元。")
print("祝您游玩愉快。")

elif的语句可以写多个,这个同学们已经见识到了。 那我们再来看下一个注意点,这个判断呢,他是互斥并且有顺序的,什么顺序呢,从上到下挨个匹配,我们在图中给他加入了编号。

  • 满足1(如图编号)将不会理会2和3

  • 满足2,将不会理会3

  • 1、2、3均不满足,进入else

else也可以省略不写,效果等同3个独立的if判断。

print("欢迎来到黑马动物园。")
height=int(input("请输入你的身高(cm):"))
vip_level=int(input("请输入你的vip级别(1~5):"))
day=int(input("请输入今天的日期(1~30):"))
if height < 120:
print("您的身高小于120CM,可以免费游玩。")

elif vip_level > 3:
print("您的vip级别大于3,可以免费游玩。")

elif day ==1:
print("今天是1号免费日,可以免费游玩。")

else:
print("不好意思,所有条件都不满足,需要购票10元。")
print("祝您游玩愉快。")

条件判断之后,如果进入到里面去执行的话,我们的执行语句他们前面的空格,一样不可以省略哦,这个不管是我们的if还是elif还是else是四个空格的缩进,都是需要的,所以这一点千万要注意好。

刚刚的代码,其实写得有点啰嗦,我们可以将这个input语句,直接集成到条件判断中。 我们这个if里面没有写变量小于120,而是直接写上input,转换成int之后直接和120去对比,这样的话呢,我们可以让代码简洁一下,还可以少写几行,代码看起来是非常清爽的。

print("欢迎来到黑马动物园。")
if int(input("请输入你的vip级别(1~5):")) < 120:
print("您的身高小于120CM,可以免费游玩。")
elif int(input("请输入今天的日期(1~30):")) > 3:
print("您的vip级别大于3,可以免费游玩。")
elif int(input("请输入你的身高(cm):")) == 1:
print("今天是1号免费日,可以免费游玩。")
else:
print("不好意思,所有条件都不满足,需要购票10元。")

print("祝您游玩愉快。")

练习案例:猜猜心里数字

练习

  1. 定义一个变量,数字类型,内容随意。

  2. 基于input语句输入猜想的数字,通过if和多次elif的组合,判断猜想数字是否和心里数字一致。

请输入第一次猜想的数字:1
不对,再猜一次:2
不对,再猜最后一次:3
Sorry,全部猜错啦,我想的是:10
写入完成

参考代码:

# 定义一个变量数字
num = 5

# 通过键盘输入获取猜想的数字,通过多次if 和 elif的组合进行猜想比较
if int(input("请猜一个数字:")) == num:
print("恭喜第一次就猜对了呢")
elif int(input("猜错了,再猜一次:")) == num:
print("猜对了")
elif int(input("猜错了,再猜一次:")) == num:
print("恭喜,最后一次机会,你猜对了")
else:
print("Sorry 猜错了")

判断语句的嵌套

学习目标

  • 掌握Python判断语句的终极用法:嵌套使用

有很多场景,不仅仅是多个并列条件,还会有满足前置条件才会二次判断的多层判断需求。对这种需求,嵌套判断语句可以实现。

判断语句的嵌套

在日常生活中或者说在程序中呢,我们会有很多的场景,他们不仅仅是多个并列的条件,还会有满足前置条件,才会进行二次判断。

那么对于这种判断需求,我们可以使用嵌套判断语句。什么叫嵌套判断语句呢?在生活中非常多的场景是有层次的判断,比如说我们先有一个外层的判断,当它满足之后呢他还会有内层的判断,那么如此往复下来,我们这个层次可以是一层,两层多层等等,那么这些判断的条件呢,也会非常地复杂。

对于现实中这种非常复杂的需求,我们就可以去自由地组合,if elif else

等等,来去完成特定需求的要求,那这种自由组合的形式,以及分有多个层次的形式,我们就把它叫做判断语句的嵌套了。 我们首先来看一下它的基础语法:

if 条件1:
满足条件1做的事情1
满足条件1做的事情2
if 条件2:
满足条件2做的事情1
满足条件2做的事情2

如上图,第二个if,属于第一个if内,只有第一个if满足条件,才会执行第二个if。

嵌套的关键点在于空格缩进。通过空格缩进,来决定语句之间的层次关系。我们来看一看简单的嵌套代码,还是我们的黑马动物园的案例:

我们首先判断一下身高,如果大于120表示不可以免费的,但是呢我们在里面又写了个if,如果你的身高超出了不能免费,那么我再判断一下,你VIP级别是否大于3 ,那么如果大于3的话,哪怕你的身高不满足,我同样可以让你玩,但如果你的VIP级别不满足,那么你还是需要补票的。如果你的身高小于120,那么直接就可以免费游玩了。

所以说我们这个简单的嵌套代码呢,它是有两个层次的,当第一个条件满足之后才会去执行第二个条件,那就是说如果你的身高小于120,你根本就不需要看VIP级别直接免费,但当你身高超过的时候,我们就看看你的VIP级别,是否满足条件了,这就是两层也就是多层次的嵌套了。

print("欢迎来到黑马动物园。")

if int(input("输入你的身高:")) >120:
print("你的身高大于120cm,不可以免费")
print("不过如果你的vip等级高于3,可以免费游玩")

if int(input("请告诉我你的vip级别:"))>3:
print("恭喜你,你的vip级别大于3,可以免费游玩。")
else:
print("Sorry,你需要补票,10元。")
else:
print("欢迎你小朋友,可以免费游玩。")

如上,判断有2层:

  • 当外层if满足条件(图中编号1)时,才会执行内层if判断(图中编号2)

  • 当外层if(编号1)不满足,直接执行外层esle

自由组合嵌套,需求如下:公司要发礼物,条件是:

  1. 必须是大于等于18岁小于30岁的成年人

  2. 同时入职时间需满足大于两年,或者级别大于3才可领取

  3. • if elif else 可以自由组合

 • 满足缩进的要求即可

if age >= 18:
print("成年人符合,继续判断")
if age < 30:
print("年龄达标继续判断")
if year > 2:
print("小于30岁的成年人且入职超过2年,满足条件,可以领取")
else:
print("Sorry,年龄符合,但入职时间不足")
elif level >3:
print("级别大于3的成年人可直接领取礼物")
else:
print("您的年龄过大或级别小于等于3,不可领取")
else:
print("Sorry,未成年不可领取礼物")

总结:

1.嵌套判断语句可以用于多条件、多层次的逻辑判断

2.嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断

3.嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系

实战案例

学习目标

  • 通过逻辑判断语句,完成猜数字的案例代码编写

案例需求:

定义一个数字(1~10,随机产生),通过3次判断来猜出来数字

案例要求:

import random
num = random.randint(1,10)
print(num)

  1. 数字随机产生,范围1-10

  2. 有3次机会猜测数字,通过3层嵌套判断实现

  3. 每次猜不中,会提示大了或小了

提示,通过如下代码,可以定义一个变量num,变量内存储随机数字。

"""
演示判断语句的实战案例:终极猜数字
"""

# 1. 构建一个随机的数字变量
import random
num = random.randint(1, 10)

guess_num = int(input("输入你要猜测的数字:"))

# 2. 通过if判断语句进行数字的猜测
if guess_num == num:
print("恭喜,第一次就猜中了")
else:
if guess_num > num:
print("你猜测的数字大了")
else:
print("你猜测的数字小了")

guess_num = int(input("再次输入你要猜测的数字:"))

if guess_num == num:
print("恭喜,第二次猜中了")
else:
if guess_num > num:
print("你猜测的数字大了")
else:
print("你猜测的数字小了")

guess_num = int(input("第三次输入你要猜测的数字:"))

if guess_num == num:
print("第三次猜中了")
else:
print("三次机会用完了,没有猜中。")

猜你喜欢

转载自blog.csdn.net/Blue92120/article/details/130398837
今日推荐