计算机科学 3 第 38-41 关
SYSTEM: ONLINE
🧬

逻辑运算符 and

双重检查专家

⛓️ 严密逻辑
⚕️ 精准医疗
👮‍♂️

严格检查官:and

and 就像一个超级严格的检查官。

他会检查所有条件,只有全部满足,才肯放行。

if type == "burl" and health < 10:
  heal(unit)
"既要是特定的种族,又要真的生病了(血量低),才给治疗!"
🛑
AND
⬇️
PASS
🔌

串联电路原理

and 想象成串联电路中的开关。

电流必须流过所有开关才能点亮灯泡。

  • ❌ 关 + 关 = 灭 (False)
  • ❌ 开 + 关 = 灭 (False)
  • ❌ 关 + 开 = 灭 (False)
  • ✅ 开 + 开 = 亮 (True)
OFF
OFF
💡
⚕️

实战:精准医疗战士

医生诊断病人需要满足两个条件:

if type == "burl" and health < 10:
  heal(unit)
else:
  say("Next!")

"只治疗濒死的树精,健康的不管。"

🌳
Type: Burl ✔️
Health: 50 ✔️
WAITING...
❤️

健康值 (Health Value)

health 属性代表生命力。

  • 📈 数值大 = 健康
  • 📉 数值小 = 虚弱
if enemy.health < 10:
  attack(enemy) # 补刀!
Health: 100
Health: 5 (Critical!)
🔀

备选方案:else

else 就像“B 计划”。
当主要条件(if)不满足时,执行它。

if condition:
  do_A()
else:
  do_B()
"如果符合条件就治疗,否则就走开。"
🛣️
⬆️ IF (True)
⬇️ ELSE (False)
🛡️

安全检查 (Safety)

在使用 enemy.type 之前,必须确保 enemy 真的存在!

# ❌ 危险:enemy 可能是 None
if enemy.type == "burl"...

# ✅ 安全:先检查存在
if enemy and enemy.type...

如果 enemy 是 None,and 会立刻停止(短路),防止报错。

👻 ➡️ 🚫
Null Protection
🥊

组合拳 (AND + OR)

我们可以把 andor 混合使用,加上括号 () 更清晰。

if (type == "A" or type == "B") and health < 10:
  attack()

含义:
1. 是A或者B(任选其一)
2. 并且 血量低

(🅰️ || 🅱️) && 🩸
🎓

医生口诀

"and 是全部都要,
缺一个就不通过!"
"先查存在再查属性,
安全第一不报错!"
🏅