宝石或者死亡 (Gem or Death)
战术思路分析:调试逻辑
英雄被困在一个房间里,周围是地雷和宝石。**地雷**的 `if` 语句必须是 **False**,而**宝石**的 `if` 语句必须是 **True**。
布尔值的控制艺术
我们通过修改条件表达式,来控制 `if` 语句的结果是 `True` 还是 `False`:
- 想要 `True`:`2 + 2 == 4`
- 想要 `False`:`2 + 2 == 5` 或使用 `!=` 或 `not`
IF False: Avoid Mine
IF True: Go Gem
Python 程序解法
Burl和布尔 (Burl and Booleans)
战术思路分析:回答问题
友善的 Burl 巫师在考你关于**布尔值**的知识。你需要准确判断比较运算符(`==`)的结果是 `True` 还是 `False`。
注意类型匹配
- 数字 (`3`) 只能和数字比较。
- 字符串 (`"Three"`) 只能和字符串比较。
例如:`"Three" == 3` 结果是 `False`,因为类型不同。
3 == "3" != True
Python 程序解法
盐碱地 (Salted Lands)
战术思路分析:多选一
我们必须攻击两种敌人:矮人 (`"munchkin"`) 或投矛手 (`"thrower"`)。我们必须收集两种物品:宝石 (`"gem"`) 或硬币 (`"coin"`)。
逻辑 OR (`or`)
`A or B` 的结果是:
- 只要 A 或 B 中**至少有一个是 True**,结果就是 `True`。
- 只有当 A 和 B **都是 False** 时,结果才是 `False`。
这让我们可以在一个 `if` 语句中处理多种目标。
IF (A or B): Action
Python 程序解法
流星雨 (Meteor Shower)
战术思路分析:宝物急救
流星雨下的硬币很快会消失(需要近距离抢)。但宝石不会消失(可以慢慢捡)。
决策逻辑是:**如果它是宝石 (永远可以捡) 或 距离近 (硬币快消失了)**,就去捡。
OR 连接不同类型条件
硬币是**距离**条件,宝石是**类型**条件。OR 可以将这两个完全不同的判断连接起来:
`if item.type == "gem" or distance < 20:`
(Is Gem?) or (Is Close?)
Python 程序解法
森林影子 (Forest Shadow)
战术思路分析:多目标搜寻
大食人魔看不见你,所以你只需要对付小食人魔(矮人/投矛手)和收集宝物(宝石/硬币)。
我们需要两次使用 `or`:一次用于敌人,一次用于物品。
两次 OR 的应用
- **攻击条件:** `enemy.type == "thrower" or enemy.type == "munchkin"`
- **收集条件:** `item.type == "gem" or item.type == "coin"`
(Munchkin or Thrower)
AND
(Gem or Coin)
Python 程序解法
概念挑战. 守护者 (The Guardian)
战术思路分析:纯 OR 过滤
英雄必须攻击两种类型的敌人:矮人 (`"munchkin"`) 和投掷者 (`"thrower"`)。这是一个直接使用 `or` 运算符来过滤目标的练习。
最简洁的 OR 语句
将两个 `==` 语句用 `or` 连接起来,是 Python 中处理多条件满足的常用方法。
IF (Munchkin or Thrower): Attack()