#Python3中布尔类型False和True

#Python3中布尔类型False和True

Python中布尔类型bool

布尔类型只有True(正确)和False(错误)两种值,但是布尔类型有以下几种运算:

True:一个条件正确,Python把1和其他数值和非空字符串都看成 True,

False:一个条件错误,Python把0、空字符串’'和None看成 False

1.与运算:只有两个布尔值都为 True 时,计算结果才为 True。

print(True and True) #(输出)True

print(True and False) #(输出)False

print(False and True) #(输出)False

print(False and False) #(输出)False

2.或运算:只要有一个布尔值为 True,计算结果就是 True。

print(True and True) #(输出)True

print(True and False) #(输出)True

print(False and True) #(输出)True

print(False and False) #(输出)False

3.非运算:把True变为False,或者把False变为True:

print(not True) #(输出)False

print(not False) #(输出)True

4.布尔类型还可以与其他数据类型做 and、or和not运算:

a = True

print (a and 'a=T' or 'a=F')

#(输出)a=T

出现上诉情况是因为Python把0、空字符串’'和None看成 False,其他数值和非空字符串都看成 True,所以:

True and ‘a=T’ 计算结果是 ‘a=T’

继续计算 ‘a=T’ or ‘a=F’ 计算结果还是 ‘a=T’

5.True和False的运算情况

当True和False遇到int类型 进行运算时(+ - * / ** 等),True看成1,False看成0

print(True + 3)

#(输出)4

print(False + 3)

#(输出)3

print('aaz' > 'aba')

#(输出)False

print( 3.2-True)

#(输出)2.2

print( 3.2*True)

#(输出)3.2

print( 3.2/True)

#(输出)3.2

print('h' > 1)

#(输出)TypeError: '>' not supported between instances of 'str' and 'int' #报错,不是相同类型不能比较

print(False + "asd")

#(输出)TypeError: unsupported operand type(s) for +: 'bool' and 'str'

#报错不支持类型+bool 和strTypeError: unsupported operand type(s) for +: 'bool' and 'str'

上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以用Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

相关推荐

蹄字的成语有哪些
mobile365体育投注英超

蹄字的成语有哪些

📅 07-22 👁️ 2390
原创月光传奇好玩吗?月光传奇好不好玩评测
mobile365体育投注英超

原创月光传奇好玩吗?月光传奇好不好玩评测

📅 07-11 👁️ 8507
在线视频下载工具:Downie 4 for Mac使用技巧介绍
365bet亚洲手机版

在线视频下载工具:Downie 4 for Mac使用技巧介绍

📅 06-29 👁️ 3588