Python 如果';x';和';y';在';z';:
我正在用python制作一个问答脚本。它获取原始输入,并将其设置为问题。我尝试了Python 如果';x';和';y';在';z';:,python,if-statement,Python,If Statement,我正在用python制作一个问答脚本。它获取原始输入,并将其设置为问题。我尝试了如果问题中的'var1'和'var2',,但它会查找其中一个字符串,而不是两个。有没有一种方法可以在一个“如果”语句中实现这一点?(不是“如果x:如果y:那么z)。和是逻辑和,而不是自然语言。因此,您的代码将被解释为: 'var1' and 'var2' in theQuestion True and 'var2' in theQuestion # Since bool('var1') == True
如果问题中的'var1'和'var2',
,但它会查找其中一个字符串,而不是两个。有没有一种方法可以在一个“如果”语句中实现这一点?(不是“如果x:如果y:那么z)。和
是逻辑和,而不是自然语言。因此,您的代码将被解释为:
'var1' and 'var2' in theQuestion
True and 'var2' in theQuestion # Since bool('var1') == True
'var2' in theQuestion
您希望使用逻辑AND连接两个测试:
if 'var1' in theQuestion and 'var2' in theQuestion:
或者,对于大量测试:
if all(k in theQuestion for k in ('var1', 'var2')):
那么:
if 'x' in z and 'y' in z:
... do something ...
或者,更一般地说,
if all(vars中的var问题中的var)
其中vars
在本例中是(var1,var2)
。@agf也添加了这一点,尽管它更像是一个用Python编写模糊代码的示例。如果您不知道有多少个变量,您会如何编写它?或者如果有十个变量?我认为它完全可读。“如果以下所有情况都是正确的:变量列表中每个变量的问题中都有变量”@agf如果测试数量是可变的,那么使用all
肯定是正确的。对于两个值来说,这简直是矫枉过正,因为你不能像天真的版本那样轻松地阅读它。同意。这就是为什么我把它作为评论,而不是回答;你已经做对了:)可能是重复的