python - "In"检查在 if 语句中不起作用

标签 python if-statement

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

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/

相关文章:

python - AWS Lambda boto3 : Instance launch from lambda boto3 python eroor

python - celery 自动重新加载不起作用

javascript - 我的 javascript 循环在完成所有 if else 语句之前中断

javascript - 通过循环和数组减少 If 语句

python - GAE 上的 CORS - 多个来源

python - 使用 Jenkins 运行站点正常运行时间和验证测试

python - 从两列中创建单个数据框,每列包含列表

python:在 while 循环中区分 b/w multiple-ifs 和 if-elif-else

PHP:在if语句中分配多个变量

python - 在 Python 中为不同的日期格式创建一个解析函数