我正在做一些基本的字符串操作,我遇到了一些非常有趣和令人困惑的事情:
str= "HELLO WORLD"
x="LL"
t = x in str
print t
if x in str == True:
print "TRUE"
当它运行时,它当前仅在第一个打印语句中打印一次 True。人们可能会认为两者在逻辑上和语法上几乎是相同的,但有人却不这么认为。我不明白这背后的原因,特别是考虑到 Python 应该是直观的。
最佳答案
将您的条件保护在括号中:
if (x in str) == True:
print("TRUE")
更好的是:与 True
相比是多余的
if x in str:
print("TRUE")
也就是说,这不是因为运算符优先级:
x in (str == True)
无效(无法迭代 bool 值)
x in str == True
有效,但返回False
。我必须承认我仍然对此感到困惑......
编辑:刚刚看到重复的内容,现在我明白了。第 1 课:当您有疑问时,始终用括号保护您的表达式。
关于python - "In"检查在 if 语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41283769/