🐸

暗影

Python 基础python-basics-16-the-shadow
奖励: 100 XP
|

Hoppy 伸进黑暗中想要抓住传说中的暗影披风。但他的手直接穿了过去。

“那是幻象,”守门人低语道,“如果未曾踏上那条路,宝藏便不存在。”

存在先于本质

在 Python 中,如果一行代码被跳过(例如,在一个判断为 Falseif 语句内部), 它就从未发生过。在该被跳过的代码块中定义的任何变量都从未被创建

试图使用一个不存在的变量会导致 NameError

if False:
  ghost = "Boo!"

print(ghost) # 报错!'ghost' 未定义。
1
NameError 错误

运行代码。你会看到一个 NameError,因为 shadow_cloak 定义在一个被跳过的 if 代码块中(因为 is_nightFalse)。

2
两个方案

要修复这个问题,你有两个选择:

  1. 将条件改为 True,让代码块执行。
  2. 或者,在 if 语句之前外部定义 shadow_cloak,确保它总是存在。
3
目标

确保 Hoppy 能穿上披风!

高级技巧
想更进一步?点击展开

这是一个好习惯:在函数或脚本的顶部初始化变量,通常赋予默认值如 None""0。 这确保了无论代码在你的 if/else 迷宫中走了哪条路,当你稍后试图使用该变量时,它总是存在的。

pymain.py
Loading...
终端输出
Terminal
Ready to run...