我正在做一些基本的字符串操作,我遇到了一些非常有趣和令人困惑的事情:
str= "HELLO WORLD"
x="LL"
t = x in str
print t
if x in str == True:
print "TRUE"
当它运行时,它目前仅在第一个打印语句上打印一次True。人们会认为两者都会以逻辑方式打印,而且几乎在语法上它们是相同的但却没有。我不明白这背后的原因,特别是考虑到Python应该是直观的。
答案 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
。我必须承认我仍然对此感到困惑......