9-Python中布尔类型

我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:

与运算:只有两个布尔值都为 True 时,计算结果才为 True。

True and True  # ==> True

True and False  # ==> False

False and True  # ==> False

False and False  # ==> False

或运算:只要有一个布尔值为 True,计算结果就是 True。

True or True  # ==> True

True or False  # ==> True

False or True  # ==> True

False or False  # ==> False

非运算:把True变为False,或者把False变为True:

not True  # ==> False

not False  # ==> True

布尔运算在计算机中用来做条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码。

在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:

a = True

print a and 'a=T' or 'a=F'

计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?

因为Python把0、空字符串''和None看成False,其他数值和非空字符串都看成True,所以:

True and 'a=T' 计算结果是 'a=T'

继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'

要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

1. 在计算a and b时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

2. 在计算a or b时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,751评论 0 17
  • 1.Python中数据类型 Python中数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当...
    ChinaGoodStaff阅读 428评论 0 1
  • 自从和你相知,内心有一些浮动。觉得你好像就是我生命中最重要的那个人。那个时候才刚刚聊天,我就间接的表白了。你委婉...
    张家_大佛爷阅读 339评论 0 0
  • 年少时 易动情易相信长久 慢慢走 会发现‘再见’随时会光顾 一次次伤心哭泣后 渐渐明白 不再习惯性依赖 随时保持可...
    张木可阅读 323评论 0 2