CAICP-E · Python 编程基础
两个条件一起看
与、或、非,以及谁先算。
这一节要学会什么
#what两样都要,还是有一样就行
#hook妈妈说:带水杯,并且带纸巾。两样都有,才算出门成功。
这就是 and。
爸爸说:带帽子,或者带伞。有一样就行。
这就是 or。
进社团呢?年龄到了,作业也交了,两关一起过。 现在可以把两关写在同一句 if 里。

如果觉得有点难 先画一张小表。 左边写条件,右边写 True 或 False。 再整句放进 if。
如果已经会了 写进社团:年龄并且作业。 再写分数档:及格并且不到 90。 给容易混的地方加上括号。
and、or、not
#explore-and-or-notand 表示并且。两边都真,结果才真。
print(True and True)
print(True and False)
print(False and False)只有第一行是 True。
or 表示或者。有一边真,结果就真。
print(True or False)
print(False or False)第一行 True。第二行 False。
not 表示反过来。真变假,假变真。
print(not True)
print(not False)可以想成两盏灯。and:两盏都亮才通过。
or:有一盏亮就通过。not:把亮和灭对调。

它们常常和比较连用。比较先得到真假,再用 and、or、not 拼。
score = 85
print(score >= 60 and score < 90)
print(score > 90 or score == 85)
print(not score < 60)三行都是 True。因为 85 及格了,但不到 90。
它等于 85。它也不是小于 60。
拼好了,放进 if
#explore-in-if光打印 True、False 还不够。这节课要把结果交给 if。 真,就做里面那几句。
出门带齐两样:
cup = True
tissue = True
if cup and tissue:
print("可以出门")
else:
print("再检查书包")两样都真,打印:可以出门
把 tissue 改成 False,就走 else。

进社团要两关一起过:
age = 11
homework = True
if age >= 10 and homework:
print("可以进社团")
else:
print("还不能进")11 够 10,作业也做了。所以打印:可以进社团 年龄不够,或作业没做,都进不去。
or 放进 if,有一边真就做。
hat = False
umbrella = True
if hat or umbrella:
print("不怕晒也不怕雨")有伞就行。打印:不怕晒也不怕雨
not 也可以直接当条件。
raining = False
if not raining:
print("不用带伞")没下雨,反过来是真。打印:不用带伞
真假值放进 if,先写成问句。
ok = True
if ok == True:
print("通过")ok 是真,所以会打印:通过
如果已经会了
ok已经是真假时,也可以直接写if ok:。 意思和if ok == True一样。
谁先算,谁后算
#explore-priority几个词挤在一行,谁先算?记住这一串: 比较 → not → and → or。看不清就加括号。
print((True or False) and False)
print(True or (False and False))第一行是 False。括号里先或,再和 False 做 and。
第二行是 True。括号让 and 先算完,再和 True 做 or。
两行不一样。所以看不清就加括号。

加完再放进 if,意思写在脸上。
hungry = True
if (hungry or False) and False:
print("这句话不会出现")
if hungry or (False and False):
print("会进来")第一句加了括号,变成假,跳过。第二句括号里的 and 先算,整句为真,会打印。
小项目:分数档和书包
#explore-band85 分落在哪一档?及格了,又不到 90。
两个比较用 and 拼,再交给 if。
score = 85
if score >= 90:
print("优秀")
elif score >= 60 and score < 90:
print("及格")
else:
print("继续加油")85 不到 90。但 >= 60 并且 < 90 为真。
打印:及格

再写正偶数。要大于 0,并且能被 2 整除。
n = 8
if n > 0 and n % 2 == 0:
print("正偶数")% 先算。再比较是不是 0。
再和 n > 0 做 and。8 是正偶数,所以会打印。
写的时候主动加括号,别人一眼就懂。
if (score >= 60) and (score < 90):
print("及格档")结果一样。意思更清楚。
复杂提示要分两步说,下一课再把 if 套进 if。先让两个条件在同一行把关。
这节课我学会了
#review记住这些:
and:两边都真才真。or:有一边真就真。not:把真假反过来。- 拼好的真假,可以直接放进
if。 - 比较 → not → and → or。看不清就加括号。
试着在心里跑一遍:
age = 11
homework = True
if age >= 10 and homework:
print("可以进社团")两关都过,打印:可以进社团
下一课才把选择套进选择。先把两个条件问清楚。
试一试
#evaluate看完就来检查一下。选错了也可以再想。
单选题
and 放进 if
cup = True,tissue = False。if cup and tissue: 打印「出门」,else 打印「再查」。结果是?
单选题
有括号时谁先算
表达式 (True or False) and False 的结果是?
单选题
进社团
age = 9,homework = True。if age >= 10 and homework: 打印「请进」。会打印吗?
多选题
逻辑和顺序
下列说法正确的有哪些?可以多选。
可多选
未登录时不会保存学习进度