“在”中检查不在if语句中

时间:2016-12-22 13:00:17

标签: python if-statement

我正在做一些基本的字符串操作,我遇到了一些非常有趣和令人困惑的事情:

str= "HELLO WORLD"
x="LL"

t = x in str
print t

if x in str == True:
    print "TRUE"

当它运行时,它目前仅在第一个打印语句上打印一次True。人们会认为两者都会以逻辑方式打印,而且几乎在语法上它们是相同的但却没有。我不明白这背后的原因,特别是考虑到Python应该是直观的。

1 个答案:

答案 0 :(得分:1)

将您的病情保护为括号:

if (x in str) == True:
    print("TRUE")

更好:与True

进行比较是多余的
if x in str:
    print("TRUE")

那就是说,它因为运营商的优先权:

x in (str == True)

无效(无法迭代布尔值)

x in str == True

有效但返回False。我必须承认我仍然对此感到困惑......

编辑:刚看到副本,现在我明白了。第1课:当你有疑问时,总是用括号保护你的表达。