微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

和python中的操作

如何解决和python中的操作

以下是产生混乱结果的代码

a = None
b = 1
print a and b
if a and b is None:
    print "True"
else:
    print "False"

这里 bool(a) 是假的,因为它没有。所以通过短路,表达式应该返回 None。这实际上正在发生。但是,在 if 条件期间,条件失败。尽管 a 和 b 产生 None,但条件失败并在输出显示 false。有人可以解释为什么会这样吗?

解决方法

a and b is None 的计算结果与 a and (b is None) 相同,因此表达式的计算结果为 None,并且执行跳转到 else 子句。

如果您添加方括号 (a and b) is None,那么您的代码将按预期打印“True”。

这是因为 is 在 Python 中的优先级高于 and。查看 operator precedence documentation 了解更多详情。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。