我们已经了解了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解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

a = 'python'
print 'hello,', a or 'world'
b = ''
print 'hello,', b or 'world'

运行以上代码,结果是:hello, python     hello, world    你能根据短路计算法则看懂么?

转载于:https://www.cnblogs.com/gouchaonan/p/5968056.html

Python中布尔类型相关推荐

  1. Python中布尔类型 短路计算原理

    Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 与运算:只有两个布尔值都为 True 时,计算结果才为 True. True and True # ...

  2. 在python中布尔类型的值包括_Python中布尔类型

    我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 与运算:只有两个布尔值都为 True 时,计算结果才为 True. True and ...

  3. python中布尔类型是特殊的什么类型_Python中布尔类型

    标签: 我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 与运算:只有两个布尔值都为 True 时,计算结果才为 True. True ...

  4. python中布尔类型是特殊的_Python中的特殊方法以及应用详解

    前言 Python 中的特殊方法主要是为了被解释器调用的,因此应该尽量使用 len(my_object) 而不是 my_object.__len__() 这种写法.在执行 len(my_object) ...

  5. python中布尔类型的值包括_Python 布尔值(Booleans)

    1.布尔值(Booleans) 在编程中,您通常需要知道表达式是True还是False. 您可以评估Python中的任何表达式,并获得两个答案之一,True或False. 比较两个值时,将对表达式求值 ...

  6. python布尔类型运算_Python中布尔类型

    我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 与运算:只有两个布尔值都为 True 时,计算结果才为 True. True and ...

  7. python输出布尔值true_关于python中bool类型的重要细节

    原标题:关于python中bool类型的重要细节 0. 导读 大家好,欢迎来到 Crossin的编程教室 ! 布尔类型是Python中必不可少的一种数据类型.它看起来很简单,仅包括True和False ...

  8. 全面理解Python中的类型提示(Type Hints)

    众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...

  9. python中布尔变量的值为_python 布尔操作实现代码 python是如何定义并使用变量的...

    python中怎么定义一个布尔类型的变量我要记住这一个半小时的车程,我要记住每一个红灯和颠簸,我要记住你手臂的温度.甚至希望旅途变长,天色变暗,暴雨如注,可与你再度过一个夜晚. 直接定义a=True/ ...

最新文章

  1. 2021年大数据Kafka(九):kafka消息存储及查询机制原理
  2. 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js
  3. ORB特征提取策略对ORB-SLAM2性能的影响
  4. 两节点的最小公共祖先LCA
  5. log4j源码阅读(一)之Logger
  6. unity 4种实现动态障碍方法
  7. k 最近邻_k最近邻与维数的诅咒
  8. 英语笔记:写作:Limiting the use of disposable plastic bags
  9. 经验之谈—让你看明确block
  10. mvn命令编译GeoServer源代码
  11. win10更新 vm14用不了
  12. setup factory 设置默认字段的值
  13. java wifi开发教程_WiFi技术
  14. 低功耗高精度性能稳定 智芯传感ZXP0压阻式大气压力传感器适用多个领域
  15. 数学分析原理 定理 6.10
  16. Spring JDBC 访问数据库
  17. aspf ftp_FTP主动模式和被动模式
  18. vue引入51la流量监控
  19. 【Debug日记】fatal: cannot lock ref ‘refs/heads/feature/CXX_Config‘: ‘refs/heads/feature‘ exists;
  20. Meter Bus解析1:概述

热门文章

  1. [转载] C#面向对象设计模式纵横谈——16 Interpreter解释器模式
  2. html5shiv主要解决IE6-8 无法识别HTML5的新标签,父节点不能包裹子元素,以及应用CSS样式...
  3. ThreadLocal剧集(一)
  4. struts2框架之文件下载(参考第三天学习笔记)
  5. JavaScript 调用后台事件和方法
  6. 详细了解文档对象模型(DOM)
  7. Vue「四」—— 组件生命周期、数据共享
  8. 机器学习算法(3)——线性回归与逻辑回归
  9. Git Branch Mode(分支模式)
  10. 基于python----图像的表示和可视化