布尔类型

作者: 程序员夏天 | 来源:发表于2020-02-08 20:04 被阅读0次

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

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

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

age = 16

if age >= 18:
    print("你是个成年人")
else:
    print("你还未成年")

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

下面一些例子的结果,可能让你感到惊讶,但事实就是如此,请坦然接受。

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

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

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

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

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

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

>>> True and True
True
>>> True and False
False
>>> False 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 >=False
True
>>> True -1
0
>>> True + 1
2
>>> True *3
3
>>> False -1
-1

真的可以!比较运算,四则运算都没有问题。并且在做四则运算的时候,明显把True看做1,False看做0。往往是我们不知道的细节,有时候给我们带来巨大的困扰和疑惑。更多的运算种类支持,请大家自行测试。

空值:None

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

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

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

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

list1 = ["a", "b", None]

for char in list1:
    print(char.join("A"))

######################################

Traceback (most recent call last):
  File "F:/Python/pycharm/201705/test.py", line 7, in <module>
    print(char.join("A"))
AttributeError: 'NoneType' object has no attribute 'join'

上一篇:数字类型

下一篇:列表

相关文章

  • 5章 布尔表达式

    本章大纲 布尔类型 布尔表达式 布尔操作符 布尔类型 布尔类型:只有2中结果:真 假 布尔表达式 布尔表达式 ...

  • typeScript学习01

    布尔类型 布尔值是最基础的数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型: 数值类型...

  • 4.2Python数据类型(2)之布尔类型

    返回总目录 目录:1.布尔类型的概念和分类:2.布尔类型的本质3.布尔类型的应用 (一)布尔类型的概念和分类: (...

  • python小课堂04 - 基本数据类型布尔篇

    python小课堂04 - 基本数据类型布尔篇 什么是布尔类型? 布尔类型:英文boolean。 举个栗子,比如今...

  • 布尔类型

    Swift有一个基本的布尔(Boolean)类型,叫做 Bool。布尔指逻辑上的值,因为他们只能是真或者假。Swi...

  • 布尔类型

    Objective-C中的BOOL实际上是一种对带符号的字符类型(signed char)的类型定义(typede...

  • 布尔类型

    1 $?表示上一条命令的执行结果,命令执行成功或返回值为true返回0,失败或者返回值为false则返回非0的数

  • 布尔类型

    对于错、0和1、正与反,都是传统意义上的布尔类型。 但在Python语言中,布尔类型只有两个值,True与Fals...

  • 布尔类型

    undefinednullfalse0NaN"" 或者 ''(空字符串) 会转换为false

  • 十:Java基础入门-布尔类型

    1:什么是布尔类型? boolean类型用来表示肯定或者否定两种可能。 2:为什么使用布尔类型? 布尔类型常用在分...

网友评论

    本文标题:布尔类型

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