如何通过输入将布尔值从True改为False?门脚本调试求助
问题解决办法
你的代码存在几个关键问题,导致变量修改不生效:
- 变量被循环重置:你把
doorisclosed=true放在while True循环内部,每次循环都会把变量重新设为初始值,之前的修改自然会被覆盖。要把变量初始化移到循环外面。 - 布尔值大小写错误:Python里布尔常量是大写的
True和False,小写的true/false会被当成普通变量,引发错误。 - 语法和缩进问题:
If首字母要小写if,而且语句缩进要和后续的判断保持一致,否则会触发语法错误。
修正后的代码:
# 把变量初始化移到循环外,避免每次重置 doorisclosed = True while True: user_input = input("press O to open: ") if user_input == "O": # 先判断门当前状态,再修改变量 if doorisclosed: print("the door has been opened!") doorisclosed = False else: print("you cant open an open door you donkey!")
这样修改后,门的状态会被持续保留,不会每次循环重置,输入"O"时会根据当前状态给出正确提示,同时修改变量值。
内容的提问来源于stack exchange,提问作者Zezim
相关产品推荐
相关产品推荐

