我刚开始学习Python,想练习if语句,因为我在玩文本冒险游戏。我只是想让这样的事情发生。例如,如果要键入“look at the floor”(或仅仅是“look floor”),其中word1将是“look”和“floor”。你知道吗
也许有一个简单的答案,我尝试了一些不同的方法,但似乎不能使它工作。谢谢你的帮助!你知道吗
def test():
answer = raw_input().lower()
if ('word1' and 'word2') in answer:
print "Both words were in the answer."
else:
print "Both words were NOT in the answer"
test()
您可以使用^{} 来实现这一点:
这将遍历您指定的每个单词并检查它是否在
answer
中。当所有已执行的检查都是这种情况时,内置函数all()
将返回True
,否则返回False
。换句话说,只有当所有检查都是True
时才是True
。你知道吗您需要对每个单词进行
in
成员资格测试:当然,如果你有很多单词,这会很快变得乏味。在这种情况下,可以使用^{} 和generator expression:
上面将测试元组
('word1', 'word2', ...)
中的每个单词是否可以在answer
中找到。你知道吗下面是一个更详尽的解释:
评估顺序!
您必须记住,虽然某些惯用结构在英语(或任何其他语言)中是有意义的,但它们在编程语言中可能没有意义,即使它是有效的语法。你知道吗
例如,让我们考虑一下您的示例代码的测试表达式:
应用求值顺序规则时,首先求值括号(
('word1' and 'word2')
)中的子表达式。由于and
运算符,此子表达式的结果是右操作数,因为左操作数的计算结果是True
。在初始表达式中重新插入这个值得到:'word2' in answer
。因此,只要答案中能找到第二个单词,测试就会一直有效。你知道吗编辑:更正布尔求值。你知道吗
相关问题 更多 >
编程相关推荐