资讯专栏INFORMATION COLUMN

python基础教程:基本数据类型之布尔类型(Boolean)

happyhuangjinjin / 3504人阅读

摘要:另外还有一种数据类型叫做布尔类型。布尔类型布尔类型是计算机中最基本的类型,它是计算机二进制世界的体现,一切都是和。中的布尔类型只有两种值和。

计算机的本质就是计算,在其内部是01的比特位的变化,对外表现就是数据的变化。那么,计算机都能处理什么数据呢?本质上,数据都是以字节(Byte)存储的,表现上看,它们就是整数、浮点数和字符串等。Python的基本数据类型也不外乎于此。

整数和浮点数就跟数学中的一样,而字符串就是各种字符的组合。另外Python还有一种数据类型叫做布尔类型(Boolean)。

布尔类型

布尔类型是计算机中最基本的类型,它是计算机二进制世界的体现,一切都是01。Python中的布尔类型只有两种值:TrueFalse。(注意:首字母都是大写,与C++、JavaScript中的小写有所不同)

布尔类型回答的是是非问题,那么什么情况下是True,什么情况下是False呢? Python里面实现了一个类型对象叫做bool,bool是一个int的子类,内置的TrueFalse就是bool仅有的两个实例对象。

使用bool我们就可以对对象进行布尔真假判断:

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

数值中的00.00j(虚数), Decimal(0)Fraction(0, 1)

空字符串("")、空元组(())、空列表([])

空字典({})、空集合(set())

对象默认为True,除非它有bool()方法且返回False或len()方法且返回0.

布尔运算: and, or, not

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

运算 表达式 结果 说明
或运算 x or y 如果x为False则取决于y;如果x为True则不考虑y (1)
与运算 x and y 如果x为False则不考虑y;如果x为True则取决于y (2)
非运算 not x 如果x为False则为True,否则为False (2)

说明:
(1)or 是一种“短路运算符”,只有当第一个为False时才去验证第二个。即:两个变量只要有一个为True则为True。
(2)and也是种“短路运算符”,只有当第一个为True时才去验证第二个。即:两个变量都为True时结果才为True。
(3)not的优先级比非布尔运算符底,所以not a == b解释为not (a == b),并且a == not b是语法错误。

In [24]: 1 == not 2
  File "", line 1
    1 == not 2
           ^
SyntaxError: invalid syntax

In [25]: not 1 == 22
Out[25]: True

上面讲到,or, and, not的优先级是依次递增的,优先级跟小学数学中先乘除后加减但括号里面的更优先是一样的。
那么小猿们猜猜下面的代码会输出什么:

print("" or "b" and "c")

优先级and大于or,所以先计算and
(1)先计算"b" and "c"时,"b"是True,则结果取决于"c",因此返回"c"
(2)再计算"" or "c"""是False,则结果取决于"C",因此返回"c"
(3)最后打印出:c
你算对了吗?

比较运算

前面提到,布尔值反应的是“是非”,有比较才有是非。Python中有8中比较运算。它们有相同的优先级,比布尔运算的优先级高。比较运算符可以任意的连写,比如:x < y <=z相当于x < y and y <= z

下面我们用表格来说明这8种不同的比较运算:

运算 含义
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
is 是对象
is not 不是对象
总结

布尔类型(True, False)表示“是非”,是比较运算的结果,是条件判断的结果,从而决定程序的流程和分支走向。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43751.html

相关文章

  • python基础教程基本数据类型

    摘要:的基本数据类型也不外乎于此。数值类型整数浮点数和是中为整数和浮点数保留的关键字。另外,布尔类型作为一种整数的子类型表示程序中的是非,它的值有且仅有两个和。 计算机的本质就是计算,在其内部是0和1的比特位的变化,对外表现就是数据的变化。那么,计算机都能处理什么数据呢?本质上,数据都是以字节(Byte)存储的,表现上看,它们就是整数、浮点数和字符串等。Python的基本数据类型也不外乎于此...

    renweihub 评论0 收藏0
  • Python基础到入门】Python基础语法篇——基本数据类型【文末送书】

    摘要:布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有两种值的数据类型可以通过内置的函数查询,例如还可以用来判断和的区别在于不会认为子类是一种父类类型。会认为子类是一种父类类型。基本功能是进行成员关系测试和删除重复元素。 ...

    Winer 评论0 收藏0
  • 九天学会Java,第一天,变量和数据类型,赋值和输出

    摘要:现在我们开始说编程特性第一条变量和数据类型,赋值和输出。从广为流传的说起,用建立一个新的工程在目录建一个文件变量和数据类型,赋值和输出在中,方法是应用程序的入口方法。变量包含三个知识点,新建变量是字符串类型给变量赋值。 用9天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一...

    cangck_X 评论0 收藏0
  • 7天学会3门语言,第一天

    摘要:天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的。 7天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的。 网络上,网友们争...

    aristark 评论0 收藏0
  • 7天学会3门语言,第一天

    摘要:天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的。 7天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的。 网络上,网友们争...

    RebeccaZhong 评论0 收藏0

发表评论

0条评论

happyhuangjinjin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<