• 布尔类型


    布尔类型

    对与错、0和1、正与反,都是传统意义上的布尔类型。

    在Python语言中,布尔类型只有两个值,Frue和False。请注意,是英文单词的对与错,并且首字母要大写,不能其他花式类型。

    所有计算结果,或者调用返回值是True或者是Flase的过程都可以称为布尔运算,例如比较运算。布尔值通常用来判断条件是否成立。

    age = 20
    if age >= 18:
        print("是成年人")
    else:
        print("不是成年人")

    布尔值与其他数据类型比较

    python内置的bool()函数可以用来测试一个表达式的布尔值结果。如;

    print(True)  # True
    print(False)  # False
    print(3 > 2)  # True
    print(3 > 5)  # False
    print(3 in [1, 2, 3])  # True
    print(3 == 9 / 3)  # True
    print(3 is "3")  # False

    为什么 3 is "3" 是错误的呢?因为一个是整数一个是字符串,is运算符比较的是对象,所以是错误的。

    >>> bool(1)
    True
    >>> bool(0)
    False
    >>> bool({})
    False
    >>> bool(-1)
    True
    >>> bool('')
    False
    >>> bool("false")
    True
    >>> bool(0.0)
    False
    >>> bool(1.0)
    True
    >>> bool(-0.0)
    False

    看完上面的例子,你会发现很多想当然的结果居然是错的。0、0.0、-0.0、空字符串、空列表、空元组、空字典,这些都判断定位False。而-1、"False"也被判断为True。

    非0及True

    布尔类型可以进行 and、or和not运算

    and运算是 与运算,只有所有都是True,and运算的结果才是True;

    >>> True and True
    True
    >>> True and False
    False
    >>> 5 > 3 and 3 >1
    True

    or运算是 或运算,只要其中有一个为True,or运算结果就是True。

    >>> True or True
    True
    >>> True or False
    True
    >>> False or False
    False
    >>> 5 > 3 or 1 > 3
    True

    not运算是 非运算,他是单目运算符,把True变成False,False变成True;

    >>> not True
    False
    >>> not False
    True
    >>> not 1 > 2
    True

    布尔类型还能做别的运算吗?

    >>> True > False
    True
    >>> True < False
    False
    >>> True - 1
    0
    >>> True + 2
    3
    >>> True * 3
    3
    >>> False - 1
    -1

    是可以的,比较运算,四则运算都没有问题。并且在做四则运算的时候,明显吧True看做1,False看做0。往往我们不知道细节,有时候给我们带来巨大困扰和疑惑。

    空值:None

    空值不是布尔类型,严格说放在这里是不合适的,只不过和布尔关系比较紧密。

    空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。

    >>> bool(None)
    False
    >>> type(None)
    <type 'NoneType'>

    平时最容易犯错误就是获得一个None值,却对它进行各种方法调用,例如;

    lis = ["a12", "b", None]
    for char in lis:
        print(char.join("1"))
    
    # 结果为:报异常
    # AttributeError: 'NoneType' object has no attribute 'join'
  • 相关阅读:
    Git-删除文件后找回-比较文件差异
    Python-异常处理-66
    Python-包-65
    Python-序列号和模块复习-64
    python入门第二十五天--反射 通过字符串的形式操作对象中的成员
    python入门第二十五天--异常处理
    python入门第二十四天----成员修饰符 类的特殊成员
    python入门第二十四天----类的成员之属性
    python入门第二十三天-----静态字段和静态方法
    pyqt5-day4
  • 原文地址:https://www.cnblogs.com/xiaohei001/p/10117279.html
Copyright © 2020-2023  润新知