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

作者: 一墨编程学习 | 来源:发表于2019-05-10 22:43 被阅读9次

    计算机的本质就是计算,在其内部是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
    • 数值中的0, 0.0, 0j(虚数), 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 "<ipython-input-24-886f7aef0701>", 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)表示“是非”,是比较运算的结果,是条件判断的结果,从而决定程序的流程和分支走向。

    大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每日分享一些学习的方法和需要注意的小细节

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/pdtzoqtx.html