字符串中的单词返回意外值

时间:2018-02-28 22:45:31

标签: python string

为什么我的布尔值会在我预期True时返回False

字符串a是“7582 + group by 1,2; ERROR:File ACT2EST.SUMMARY_CFS.DATA不存在。”

我的代码表达式为"WARNING" and "ERROR" in a;这评估为True

我将相同的代码"WARNING" and "ERROR" in b应用于另一个字符串b = "if abc ; WARNING: message. ERROR Message.",我的输出为True,符合预期。

有人能让我知道我的代码出了什么问题吗?为什么用字符串运行它时我的输出是True而不是False?顺便说一句,我使用python 2.7

2 个答案:

答案 0 :(得分:6)

是的,因为你检查是否"警告"在字符串中;你检查的只是字符串的真值。你需要

"WARNING" in a and "ERROR" in a

逻辑运营商以他们的英语方式分发他们的对象。

答案 1 :(得分:0)

如果你想获得幻想,你可以这样做:

a = "This is a demo text"

if any( x in a for x in ["This", "rocks", "scissors"] ):
    print("Text contains any of This, rocks, scissors")
else:
    print("Text has neither of This, rocks, scissors")


if all( x in a for x in ["This", "rocks", "scissors"] ):
    print("Text contains all of This, rocks, scissors")
else:
    print("Not all in!")

anyall是内置插件:

对iterables进行操作并检查iterable中的任何/所有是True

只有2个值,只需链接if "this" in a and "that" in a:即可