学径 LearnPath

CAICP-E · Python 编程基础 / Wiki

比较运算

比较两个值,结果只有真或假。

它是什么

比较运算 把两个值放在天平上。 结果不是新的很大的数。 结果是真或假。 也就是 TrueFalse

程序要做选择,先得会问问题。 「够不够 60 分?」「是不是同一个人?」 问完得到真假,分支 才知道该走哪一条路。

六个符号:

符号意思
>大于
<小于
==等于
!=不等于
>=大于或等于
<=小于或等于
python
score = 80
print(score >= 60)  # True
print(score == 100)  # False

名字从哪来

比较的英文是 comparison。 数学课上的大于、小于、等于,就是它的祖先。

编程里最容易混的是两个等号。 一个等号 = 在很多语言里表示「放进去」,来自把值赋给 变量。 两个等号 == 才表示「两边一样吗」。 这个分工在 C 语言家族里很常见,Python 跟着用。

TrueFalse 属于布尔类型 bool。 名字来自英国数学家乔治·布尔。 详见 逻辑运算

!= 读作「不等于」。 感叹号在英语里常表示 not,所以是「不是等于」。

它怎么工作

特别小心:

  • = 是赋值
  • == 才是问相不相等

TrueFalse 首字母必须大写。 不要加引号。 加了引号,就变成普通文字 "True",比较时很容易踩坑。

数字可以比大小。 字符串也能比相不相等,有时还能比先后(按字典序)。

python
print("小派" == "小派")
print("apple" < "banana")

3 == 3.0True。 值相等,类型仍可能不同。 见 数据类型

"60" == 60False。 一边是文字,一边是数。 要先想清要不要 转换

比较结果可以放进变量。 后面的分支和 循环 最爱用它。

几个比较还可以用逻辑运算拼起来:

python
score = 85
print(score >= 60 and score < 90)

谁先算,看 优先级。 看不清就加括号。

还有两个常见成员资格比较:

  • in:在不在里面
  • not in:不在里面
python
print("a" in "cat")
print(3 in [1, 2, 3])

生活里在哪里

  • 体检:身高够不够坐过山车。
  • 成绩:分数过不过及格线。
  • 安检:行李重不重过限。
  • 点名:名字是不是这一位。
  • 超市:满 99 减 10,先比「满不满」。

裁判看比分、温度计看冷热,都是比较。 程序把比较写成符号,好让电脑也能判。

和相近概念的差别

比较得到真假。 算术 得到新的数。

80 - 602080 > 60True。 两件事不要混。

逻辑运算不直接比大小。 它把已经得到的真假再拼起来。 比较常常是零件,逻辑是装配。

赋值不是比较。 看见一个等号,先问:这是在放东西,还是在提问?

常见误会

误会 1:写成 =>=<

正确是 >=<=。 等号写在后面。

误会 2:True 写成 true

必须大写。

误会 3:拿 "60"60 乱比。

类型不同时要先想清楚。 该转就转。

误会 4:把一个等号当成比较。

= 是放进去。 == 才是问相不相等。

误会 5:比较一定会改变原来的值。

它只是提问。 盒子里的分数不会因为被问过就变掉。

想知道更多

  • 书:潘洪波《小学生 Python 趣味编程》(用及格、比大小这类情境引出比较)。
  • 书:埃里克·马瑟斯《Python 编程:从入门到实践》(条件一章会反复用到比较符号,可以和家长一起读)。

未登录时不会保存学习进度