'and' python3 中的运算符

'and' operator in python3

我对编码还很陌生,但我虽然了解 'and' 运算符的工作原理。在我提供的示例中,我认为 'False' 语句会得到 运行 而不是 'True' 语句。有人能告诉我为什么这没有达到我的预期吗?

string = 'asdf'

if 'z' and 's' in string:
    True
else:
    False

and关键字是表达式的一部分,它应该位于两个子表达式之间。这里你写 'z' and 's' in string 它被解释为:

('z') and ('s' in string)

其中第一个子表达式 'z' 或多或少被评估为 True,而第二个子表达式稍微复杂一些(在您的示例中,它也被称为 True 因为 's' 实际上在 string.

组合两个子表达式产生 True(此处)。

你当然想写:

if 'z' in string and 's' in string:

只是在上面的答案的基础上,为了从 if 语句中获得您期望的正确输出,您需要指定 if "z" in string and "s" in string 以便 python 计算 what 的正确含义你打算这样做。

 string = 'asdf'

 if 'z' in string and 's' in string:
     print("True") 
 else:
     print("False")