布尔值与比较运算
掌握布尔类型、比较运算符和逻辑运算符
- 理解布尔值 True 和 False
- 掌握六种比较运算符
- 掌握 and、or、not 逻辑运算
布尔值
布尔值只有两个:True(真)和 False(假)。首字母必须大写,其余小写——写 true 和 false,Python 会报未定义。
布尔值是条件判断的基础。if、while 等语句都靠布尔值来决定程序怎么走。
比较运算符
比较运算的结果就是布尔值。Python 有六种比较运算符:
= 是赋值(把值放进变量),== 是比较(判断两边是否相等)。写条件时别混用!这是初学者排名第一的语法错误。
x = 5
print(x == 5)
print(x = 5)逻辑运算符
逻辑运算符用来组合多个条件:
短路求值
Python 的逻辑运算符有「短路」特性:如果第一个条件已经能决定结果,就不会计算第二个条件:
真值与假值
Python 里,条件判断不一定要放布尔值,非布尔值也能用。下面这些值会被当成 False(假值),剩下的全是 True:
Python 支持数学里常见的链式比较,写起来很直观:0 < x < 100 等价于 x > 0 and x < 100。其他语言通常得写成 0 < x && x < 100。
搞懂真值、假值,代码能写得更 Pythonic。初学者写 if len(items) > 0:,老手直接写 if items:。注意:if x == None: 得写成 if x is None:——用 is 比较 None 是 PEP 8 规范。另外,别拿布尔值和 True/False 比——if is_valid == True: 是冗余的,直接写 if is_valid: 就行。这些细节,就是新手和老手的区别。
实际应用
x = 15
print(10 < x < 20)
print(x > 20 or x < 5)not (10 > 5) 的结果是?
bool(0) 的值是?
3 > 2 and 1 > 5 的结果是?
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
Python 里整数、字符串甚至函数都是对象,堆在内存里;变量不是装东西的盒子,而是一张贴在对象上的「名字标签」(引用)。id(x) 看对象身份,is 比身份、== 比值。CPython 会缓存 -5~256 的小整数,所以 a=1;b=1 时 a is b 为 True,但 a=300;b=300 未必。结论:判断值是否相等永远用 ==,判断是不是 None 才用 is。
挑战任务
范围判断
判断数字 42 是否在 1 到 100 之间(包含边界)。
课后作业
闰年判断
判断 year=2024 是否为闰年(能被4整除且不能被100整除,或能被400整除)。