python中的If或语句

2024-09-28 19:24:14 发布

您现在位置:Python中文网/ 问答频道 /正文

wow = ["wowza this is a really long string wows"]

if "long"  or "is" in wow:
    print("yes")

输出是yes

但是如果我把

^{pr2}$

输出是nothing

同:

 wow = ["wowza this is a really long string wows"]

    if "is" in wow:
    print("yes")

为什么?在

我以为or应该是其中之一? 但是如果单独输入的两个值都为false,但是使用or它就变成真的了?在

{cd5>写错了

应该这样写吗?在

if "long" in wow or "is" in wow:

Tags: orinstringifisthislongyes
3条回答
if "long"  or "is" in wow:

相当于

^{pr2}$

你想要的是:

^{3}$

第一个测试是成功的,因为"long" or "is" in wow返回{},而字符串{}是truthy*。以下测试失败,因为wow是一个包含1个字符串的列表,in运算符在这里测试列表包含,而不是字符串包含。在

*此处不测试or "is" in wow部分,因为if短路。但与你的问题无关

好吧,我们这里有几个不同的问题。在

if "long"  or "is" in wow:

这意味着:

^{pr2}$

所以是的,你需要把它改成:

^{3}$

但这仍然不能满足您的需要,因为wow是一个列表。您正在询问"long"是否是该列表中的一个元素。但是"long"不是列表中的元素。列表的唯一元素是字符串"wowza this is a really long string wows",它与"long"不同。您需要检查字符串本身,而不是列表。在

将条件发送到交互式提示符(如果有,请运行python或ipython)以查看它返回的结果如何?在

>>> wow = ["wowza this is a really long string wows"]
>>> "long" in wow
False
>>> "long" or "is" in wow
'long'

您可能需要测试字符串,而不是单个项目列表:

^{pr2}$

相关问题 更多 >