【Python】Python数据结构之布尔类型(bool)

目录:Python数据结构之布尔类型(bool)

  • 一、布尔说明
  • 二、判定
  • 三、布尔运算: and, or, not

一、布尔说明

  • Python 中布尔值使用常量True 和 False来表示;注意大小写。
  • 比较运算符< > == 等返回的类型就是bool类型;布尔类型通常在 if 和 while 语句中应用。
  • 注意的是,python中,bool是int的子类(继承int),故 True ==1False==0 是会返回Ture的。
  • Python2中True/False不是关键字,因此我们可以对其进行任意的赋值;同理,Python 中 if(True) 的效率远比不上if(1);Python2 版本中True False不是关键字,可被赋值,Python3中会报错。
  • 由于bool是int,可进行数字计算 ,例如:print(True+True),输出是2。

二、判定

以下值会被判断是True或False:

  • 数字0 ---------- False
  • None ---------- False; None是真空
  • null (包括空字符串、空列表、空元祖…) --------- False

除了以上的,其他的表达式均会被判定为 True,这个需要注意,与其他的语言有比较大的不同。

In [3]: bool(None)
Out[3]: False

In [4]: bool(0)
Out[4]: False

In [5]: bool([])
Out[5]: False

In [6]: bool(())
Out[6]: False

In [7]: bool('')
Out[7]: False

In [8]: bool({})
Out[8]: False

以上是判断为假的情况,总结一下为假的情况有:

  • None, False
  • 数值中的0, 0.0, 0j(虚数), Decimal(0), Fraction(0, 1)
  • 空字符串(‘’)、空元组(())、空列表([])
  • 空字典({})、空集合(set())
  • 对象默认为True,除非它有bool()方法且返回False或len()方法且返回0

三、布尔运算: and, or, not

下面的表列举了布尔运算的结果,优先级为升序:

【Python】Python数据结构之布尔类型(bool)_第1张图片
说明:

(1)or 是一种“短路运算符”,只有当第一个为False时才去验证第二个。即:两个变量只要有一个为True则为True。

(2)and也是种“短路运算符”,只有当第一个为True时才去验证第二个。即:两个变量都为True时结果才为True。

(3)not的优先级比非布尔运算符底,所以not a == b解释为not (a == b),并且a == not b是语法错误。

上面讲到,or, and, not的优先级是依次递增的,优先级跟小学数学中先乘除后加减但括号里面的更优先是一样的。

优先级and大于or,所以先计算and:

(1)先计算’b’ and ‘c’时,‘b’是True,则结果取决于’c’,因此返回’c’。

(2)再计算’’ or ‘c’,‘‘是False,则结果取决于’C’,因此返回’c’。

(3)最后打印出:c。

你可能感兴趣的:(Python3常用到的函数总结,python,布尔类型,bool)