在python中,为什么我的简单测试基础游戏的代码(相当混乱)不起作用?

在python中,为什么我的简单测试基础游戏的代码(相当混乱)不起作用?,python,Python,这是我现在正在做的一个简单的基于文本的冒险的一部分。出于某种原因,每次我运行它并在任何一点上说“不”,它都会继续执行“是”的代码。也可以自由地提出任何清理此代码的方法。我使用互联网自学,对python非常陌生,所以请不要讨厌:) 注意:我在前面使用了breakhold 3=0。此类型的布尔表达式存在问题: if poi1 == "Yes" or "yes" or "ye" or "Ye" or "Y" or "y": 这就是你想要做的: if poi1 == "Yes" or poi1 ==

这是我现在正在做的一个简单的基于文本的冒险的一部分。出于某种原因,每次我运行它并在任何一点上说“不”,它都会继续执行“是”的代码。也可以自由地提出任何清理此代码的方法。我使用互联网自学,对python非常陌生,所以请不要讨厌:)


注意:我在前面使用了breakhold 3=0。

此类型的布尔表达式存在问题:

if poi1 == "Yes" or "yes" or "ye" or "Ye" or "Y" or "y":
这就是你想要做的:

if poi1 == "Yes" or poi1 == "yes" or poi1 == "ye" or poi1 == "Ye" or poi1 == "Y" or poi1 == "y":
问题是这些字符串本身的计算结果是
True

更好的解决方案可能是检查
poi1
是否在“是”值列表中:

更简单,但:

if poi1.lower().startswith("y"):

另外,请记住,您发布的代码中有几个地方有不正确的布尔表达式。

或者,尝试一种特别适合文本冒险的语言:


更多关于

我可以说在最后一行之后应该有一个“time.sleep(100)”!很抱歉如果你觉得这会澄清你的问题,请随意编辑你的帖子以包含该细节。如果在['Yes'、'Yes'、…]中使用
如果poi1
IMO。或者甚至只使用
如果poi1和poi1[0]。lower()='y':
if poi1.lower() in ["yes", "ye", "y"]:
if poi1.lower().startswith("y"):