如果'z'中有'x'和'y':

7 投票
2 回答
10974 浏览
提问于 2025-04-17 05:49

我正在用Python写一个问答脚本。它会获取用户输入,并把这个输入存储为theQuestion。我试过用 if 'var1' and 'var2' in theQuestion: 这样的写法,但它只会检查其中一个字符串,而不是同时检查两个。有没有办法让我在一个'if'语句中做到这一点?(而不是像 'if x: if y: then z' 这样分开写)。

2 个回答

2

这样怎么样:

if 'x' in z and 'y' in z:
  ... do something ...
18

and 是一个逻辑与,不是我们平常说的那种自然语言的“和”。所以,你的代码会被理解成:

'var1' and 'var2' in theQuestion
True   and 'var2' in theQuestion # Since bool('var1') == True
           'var2' in theQuestion

你想用逻辑与把两个测试连接起来:

if 'var1' in theQuestion and 'var2' in theQuestion:

另外,如果有很多个测试的话:

if all(k in theQuestion for k in ('var1', 'var2')):

撰写回答