2.Python判断语句
2. 判断语句
2.1 True、False
Python中的常见数据类型像整型、浮点型、字符串型之前我们都见过了,除了这些类型之外还有一些,本节课我们来看布尔类型
布尔类型只有两种结果
- True
- False
Ture:表示 ‘真’ ,通俗的说表示 ‘成立’
False:表示 ‘假’,通俗的说表示 ‘不成立’
简单使用
示例如下:
1 | have_money = True # 定义一个变量存储布尔类型数据True |
作用
因为布尔类型的数据只有2种结果,所以这种数据类型往往用在”判断”的场景。
简单示例如下:
1 | have_money = True |
运行效果:
1 | 你有钱啊,是否有才华就不一定哦... |
提示:具体的应用会在学习if时会讲解
2.2 比较运算符
引入
如果定义一个变量直接赋值为True或者False这种场景,但有时我们需要让程序自己计算某个表达式,这个式子的结果是True或者False这样,在配合上if或者while等应用就会显得更加灵活
比较运算符的分类
| 比较运算符 | 描述 | 示例 |
|---|---|---|
== |
检查两个操作数的值是否相等,如果是则条件变为真。 | 如a=3,b=3,则a == b 为 True |
!= |
检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3,则a != b 为 True |
> |
检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则a > b 为 True |
< |
检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3,则a < b 为 False |
>= |
检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则a >= b为 True |
<= |
检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | 如a=3,b=3,则a <= b为 True |
比较运算符的结果
比较运算符的结果一定是True或者False
例如:
1 | 100 > 50 # 结果就是True |
示例代码
用Python交互模式的示例代码如下:
1 | ## 比较运算符 |
总结
- 把生活中的大于、小于、等于、不等于、大于或者等于、小于或者等于用
>、<、==、!=、>=、<=来表示 >=表示的意思是:小于或者等于 只要满足那么结果就是True否则为False<=表示的意思是:小于或者等于 只要满足那么结果就是True否则为False- 注意等于用
==表示,而不是=
2.3 逻辑运算符
引入
通过比较运算符我们知道,当比较数据大小、是否相等时,可以直接用>、<、==、!=、>=、<=来操作
但是,有很多时候不仅仅是简单的对比大小还有:并且、或者、不
举个例子:
- 成年
并且女性 - 本科生
或者研究生 不是18周岁以下学生
为了能够实现并且、或者、不,Python提供了逻辑运算符
and实现并且的功能or实现或者的功能not实现不的功能
1 | '并且'、'或者'、'不': 是为了大家好理解,我给它们起的名字,但是专业术语中把它们称之为:与、或、非 |
逻辑运算符的简单使用
and
实现并的功能,通俗的说就是并且
一般的用法:两边都为True,结果才为True
例如:
1 | 100 > 50 and 90 < 200 # 100 > 50结果为True 90 < 200结果为True,就相当于 True and True 所以最后结果是True |
or
实现或的功能,通俗的说就是或者
一般的用法:两边只要有一个True,结果就为True
例如:
1 | 100 > 50 or 90 > 200 # 100 > 50结果为True 90 > 200结果为False,就相当于 True or False 所以最后结果是True |
not
实现非的功能,通俗的说就是不
一般的用法:之前结果为True,那么not True就是False,如果之前是False,那么not False就是True
例如:
1 | not (100 > 50) # 结果为False,本来100>50的结果是True,但前面加了not就相当于反义,所以最后结果为False |
逻辑运算符与比较运算符一起使用
示例一:
- 需求:怎样判断用户名与密码同时都相同呢?
参考代码如下:
1 | name = input("请输入用户名:") # 获取用户名 |
示例二:
- 需求:怎样实现老板或者领导就能开门呢?
参考代码如下:
1 | role = "老板" # 定义角色变量,存储职位 |
示例三:
- 需求:怎样实现不小于18岁的判断呢?
参考代码如下:
1 | age = 20 |
示例四:
- 需求:年龄在18~50之间的女性
参考代码如下:
1 | age = 20 |
示例五:
- 需求:年龄在18
60岁之间的男性或者年龄在1850岁之间的女性
参考代码如下:
1 | age = 20 |
特殊情况下的逻辑运算符
我们一般用逻辑运算符时,左右两边的结果是True或者False,最后得到一个True或者False
但,有时逻辑运算符的左右两边不是True或者False,这种情况我们就需要小心一点
and
看下面的示例,猜猜看,结果是多少
1 | print(100 and 200) # 输出什么呢? |
运行结果:
1 | 200 |
为什么呢?
答:想要搞懂这个问题,需要有2点
第1点:
Python中是有布尔类型的也就是True和False 用True表示真 用False表示假,而在一些其它编程语言中没有,例如C语言中是没有布尔类型的,因此C语言为了能够表示出真、假,就发明了一个规定,只要数字不是0 无论是正数还是负数统统表示真,只要是0就表示假。
后来,虽然Python发明了True和False,但它依然保留了C语言中的这种开发者都已经习以为常的习惯,所以Python中也用
- 非0表示
真 - 0表示
假
第2点:
我们知道and实现的是两边都是True最后结果才是True,否则是False,但是它有个隐藏的功能,
如果左边的表达式不是True那么右边根本不会执行,且将左侧的值当做最后结果
如果左边的表达式是True那么右边才会执行,且将右侧的值当做最后的结果
之所以有这个隐藏的功能是因为:and是与的功能,既然左侧已经为假了,也就没有必要看右边了,结果一定是假,只不过此时把左侧的结果当做最后结果而已
根据上述2点来看:
print(100 and 200),因为100不是0 所以and左边为真,接下来执行右边,此时将200当做最后的结果print(100 and 100>50),因为100不是0 所以为真,执行右边100>50且将它的结果当做最后的结果,所以最后为Trueprint(0 and 200),因为and左侧为0 所以为假,不会执行右边,且将左边的结果当做最后结果,所以最后为0print(0 and 100>50),原因与上一条一样,结果为0
or
有了前面and的额外经验,我们再看or时就简单多了
or的特殊规则如下:
- 如果左边为
真,那么就把左边的值当做最后的结果 - 如果左右为
假,那么就把右边的值当做最后的结果
or之所以有这样功能是因为:or是或的功能,既然左侧已经为真了,也就没有必要看右边了,结果一定是真,只不过此时把左侧的结果当做最后结果而已
代码示例:
1 | print(100 or 200) # 输出什么呢? |
运行结果:
1 | 100 |
总结
| 逻辑运算符 | 表达式 | 描述 | 实例 |
|---|---|---|---|
and |
x and y |
布尔”与”:如果 x 为 False,x and y 返回 False,否则它返回 y 的值 |
True and False, 返回 False |
or |
x or y |
布尔”或”:如果 x 是 True,它返回 True,否则它返回 y 的值 |
False or True, 返回 True |
not |
not x |
布尔”非”:如果 x 为 True,返回 False 。如果 x 为 False,它返回 True |
not True 返回 False, not False 返回 True |
课后作业
输入一个整数,输出:
是否大于 10
是否为偶数
2.4 if 判断语句
引入
很多时候当我们打开某个App,需要输入用户名和密码,如果正确那么就可以登录,否则不让使用
在我们身边这样场景有很多很多,想要实现这样的功能那我们就需要学习if判断
基本使用
if是用来进行判断的,其使用格式如下:
1 | if 要判断的条件: |
示例代码如下:
1 | age = 30 |
注意:
- if判断总体来说:当条件满足后就要做某些事情,这些事情以及if它们是一个整体
- 如果if条件成立后,要做的事情有很多,那么都需要在行首缩进4个空格(只需要敲一个Tab键,就会自动添加4个空格)
示例代码如下:
1 | age = 30 |
案例演示
代码:
1 | age = 30 |
结果:
1 | ------if判断开始------ |
说明:
age的值是30,所以age >= 18的结果是True,所以就会执行3个print
代码:
1 | age = 16 |
结果:
1 | ------if判断开始------ |
说明:
age的值是16,所以age >= 18的结果是False,所以不会执行print("我已经成年了")
案例补充
示例一:
1 | cool = True |
示例二:
1 | name = input("请输入用户名:") |
随堂练习
要求:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”
- 使用
input从键盘中获取数据,并且存入到一个变量中 - 使用
if语句,来判断age >= 18是否成立
2.5 else 判断子句
引入
想一想:在使用if的时候,它只能做到满足条件时要做的事情。那需要在不满足条件的时候做某些事,该怎么办呢?
答:使用 else
else 与 if 配合使用
格式如下:
1 | if 条件: |
示例一:
1 | ticket = True # 用True代表有车票,False代表没有车票 |
结果一:
1 | 有车票,可以上火车 |
结果二:
1 | 没有车票,不能上车 |
注意:
- 无论是在if语句还是在else子句控制的代码之下都需要进行代码缩进!
随堂练习
要求:从键盘输入身高,如果身高没有超过150cm,则进动物园不用买票,否则需要买票。
提示:input获取的数据不是整数类型,需要用int()转换,例如int("100")结果就是整数100
参考代码:
1 | height = input("请输入身高:") # 获取身高 |
2.6 elif 判断子句
if能完成条件满足时做可以执行某些代码
if-else能完成条件满足时执行某些代码,不满足时执行另外一些代码
如果有这样一种情况:当条件1满足时做事情1;条件2满足时做事情2;条件3满足时做事情3,那该怎么实现呢?
答:elif
elif 使用
elif的使用格式如下:
1 | if 条件1: |
说明一:执行流程
- 当条件1满足时,执行事情1,然后整个
if结束 - 当条件1不满足条件2满足时,则执行事情2,然后整个
if结束 - 当条件1、条件2不满足条件3满足时,则执行事情3,然后整个
if结束 - 依次类推,如果条件1、条件2、条件3.。。。。条件n-1都不满足且条件n满足,则执行事情n,然后整个
if结束 - 如果没有任何条件满足,那么就执行else中的事情
说明二:else
else不是必须的,根据实际情况决定是否添加,如果所有条件满足时做的事情很明确,且没有全部都不满足的时候,此时就不用写- 如果当前能考虑的条件都有对应的代码,但不能保证所有条件都考虑到了,此时建议写上
else
示例代码
1 | score = 77 # 定义变量存储分数 |
注意点
在if判断中,最多只能有1个else,但可以有N个elif,必须有1个if
下面的写法是错误的
错误示范1:一个if最多有1个else
1 | if 100 > 60: |
错误示范2:一个if判断必须有1个if
1 | else: |
总结
到现在为止,if总体来说学习了3种
- 第1种:只判断一个条件,我们用
if来实现 - 第2种:可判断2个条件(满足、不满足),我们用
if...else...来实现 - 第3种:可以判断N个条件,我们用
if...elif...elif...else...来实现
2.7 if 嵌套
引入
想一想:
坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况先对某个条件进行判断然后再判断另外一个条件的,这样的情况该怎样解决呢?
答:
if嵌套
if 嵌套的格式
1 | if 条件1: |
说明
- 外层
if与内层if至于是3种if判断的哪一种都是可以的,根据实际情况来决定
示例代码
外层是if...else...内层也是if...else...
1 | ticket = True # 用True代表有车票,False代表没有车票 |
结果一:ticket = True knife_lenght = 9
1 | 有车票,可以进站 |
结果二:ticket = True knife_lenght = 20
1 | 有车票,可以进站 |
结果三:ticket = False knife_lenght = 9
1 | 没有车票,不能进站 |
结果四:ticket = False knife_lenght = 20
1 | 没有车票,不能进站 |
想一想:
为什么结果三和结果四相同???
随堂练习
情节描述:上公交车,并且可以有座位坐下
要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下
请编写代码实现上述要求
2.8 if 代码案例
参考代码
1 | import random |
- 标题: 2.Python判断语句
- 作者: Jinshuo Jiang
- 创建于 : 2025-09-30 21:28:26
- 更新于 : 2025-10-17 18:47:06
- 链接: https://redefine.ohevan.com/2025/09/30/Python conditional statements/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。