python字符串比较失败
我只是偶然发现了一个在我看来像虫子的东西:python字符串比较失败,python,string,comparison,Python,String,Comparison,我只是偶然发现了一个在我看来像虫子的东西: var = "2" if var is "" or "1": print(var) 这段代码返回“2”,因为我希望它不会打印任何内容 有人能给我解释一下这个结果吗 在2.7和3.4中测试 表达式被解析为(var为“”)或“1”,这始终是真的,因为“1”是真的 如果添加括号以获得变量为(“”或“1”),则等于变量为真,因为”或“1”为真,因为“1”为真 将字符串与is进行比较充满了危险,因为is运算符检查的是身份,而不是平等性 你可能想要(“,
var = "2"
if var is "" or "1":
print(var)
这段代码返回“2”,因为我希望它不会打印任何内容
有人能给我解释一下这个结果吗
在2.7和3.4中测试
(var为“”)或“1”
,这始终是真的,因为“1”
是真的变量为(“”或“1”)
,则等于变量为真
,因为”或“1”
为真,因为“1”为真is
进行比较充满了危险,因为is
运算符检查的是身份,而不是平等性你可能想要(“,”1“)中的
var这可能有助于理解如果((var是“”)或(“)1”)
这被解析为,因此你需要理解是如何工作的,以及“1”
被视为布尔是运算符时的含义:请参阅此处的真值测试:是,我犯了明显的错误,下次我会更加注意。。。无论如何,谢谢你的回答!