平常的一天 (A Normal Day)
战术思路分析:短路求值
以前,我们总要写两层 `if` 语句来检查目标:`if enemy: if enemy.type == "munchkin":`。这很繁琐!
编程优化:AND 的短路特性
在 `enemy and enemy.type == "munchkin"` 中:
1. 计算机先检查 `enemy` 是否存在(是否为 `None`)。
2. **如果 `enemy` 是 `None`(即不存在),** 整个表达式立刻被判定为 `False`,**右侧的 `enemy.type` 代码不会被执行**,从而避免了程序崩溃!
IF Target AND Target.Prop: Run Code
Python 程序解法
逻辑之路 (The Logic Path)
战术思路分析:三元组逻辑
巫师的路口是布尔逻辑控制的。你需要根据逻辑表达式的结果(`True` 走上,`False` 走下)来选择道路。
三大家族运算符
- AND: **都**为真才为真。 (`secretA and secretB`)
- OR: **有一个**为真即为真。 (`secretA or secretB`)
- NOT: **取反**。 (`not secretB`)
A and B
A or B
not B
Python 程序解法
逻辑之圈 (The Logic Circle)
战术思路分析:连续判断
这次布尔值有三个 (`A`, `B`, `C`),你需要判断更长的逻辑表达式。
链式 AND 和 OR
- **`AND` 链:** `A and B and C` (所有都必须为真)
- **`OR` 链:** `A or B or C` (任何一个为真即可)
**注意:** Python 可以直接处理多于两个变量的 `and` 和 `or` 运算。
(A and B and C)
(A or B or C)
Python 程序解法
逻辑结论 (The Logical Conclusion)
战术思路分析:优先级
这是最复杂的布尔挑战,涉及到所有三个运算符,你需要使用**括号**来控制运算顺序!
优先级顺序 (高到低)
1. **圆括号** `()`
2. **NOT** (`not`)
3. **AND** (`and`)
4. **OR** (`or`)
(A and B) or C
Python 程序解法
组合挑战. 非与或 (NOT AND OR)
战术思路分析:综合决策
这是对所有布尔运算符的总测试!
- **物品条件(OR):** 收集 `potion` **或** `lightstone`。
- **敌人条件(NOT AND):** 攻击 **非** `burl` **且** 距离 `< 15` 的敌人。
NOT AND 结构
我们使用 `!= "burl"` (不等于) 来实现 `NOT` 的功能,然后用 `AND` 来连接距离条件。
Attack: (Type != Burl) and (Close)
Collect: (Potion or Lightstone)