15 分钟
Python 入门

布尔值与比较运算

掌握布尔类型、比较运算符和逻辑运算符

  • 理解布尔值 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)
找 Bug写条件判断的时候,用 == 做比较,别拿 = 当比较用——= 是赋值操作。
age = 20 if age = 18: print("刚好18岁")
填空题填写空白处的代码
x = 10 print(x > 5 x < 20) # True print(x > 15 x == 10) # True
选择题

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。

挑战任务

范围判断

简单+50 XP

判断数字 42 是否在 1 到 100 之间(包含边界)。

范围判断
2 个测试用例

课后作业

闰年判断

中等+20 XP

判断 year=2024 是否为闰年(能被4整除且不能被100整除,或能被400整除)。

闰年判断
1 个测试用例