Loading...
墨滴

瀋凣

2021/04/30  阅读:124  主题:极简黑

python笔记08

Python Day08

1. 布尔(Bool)

布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算。

由于布尔在符号逻辑运算中的特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,将其结果称为布尔值。

1.1 bool()

内置函数bool()用于将给定参数转换为布尔类型。

>>> bool("True")
True
>>> bool("真")
True
>>> bool("假")
True
>>> bool("False")
True

怎么肥四?你说Python不认识中文也就算了,怎么英文也不认识了?

事实上,只要传入非零参数,返回值都是True;只有不填参数或是传入的参数值为0或为空,返回值才为False

以下为结果为False的参数:

  • 定义为False的对象:NoneFalse
  • 值为0的数字类型:0,0.0,0j,Decimal(0)Fraction(0,1)
  • 空的序列和集合:''()[]{}set()range(0)

那如果传入一个布尔类型的参数会发生什么呢?

>>> bool(False)
False
>>> bool(True)
True

不是说有非0值就是 True 的嘛?为什么传入 False 却是 False 呢?难道······

>>> 1 == True
True
>>> 0 == False
True

四则运算走一波:

>>> True + False
1
>>> True - False
1
>>> True * False
0
>>> True / False
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ZeroDivisionError: division by zero
#除数不能为0

布尔类型其实就是特殊的整数类型,boolint的子类。

注意:Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

那这个布尔值他有啥用呢?
回想起我们之前写的猜数字小游戏,里面用到了分支语句if循环语句while,要实现分支语句和循环语句,都要有一个条件,而这个条件就是布尔类型。

在我们之前(python笔记03)的例子里,条件是比较运算符计算之后的结果:

运算符 含义
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于,比较两个值是否相等
!= 不等于
>>> if 520 > 250:
        print("520 比 250 大!")
else:
        print("520 不比 250 大!")
       
520 比 250 大!

今天我们可以用bool()函数生成一个布尔类型的结果:

>>> if bool(520):
        print("520 is True")
else:
        print("520 is False")

1.2 逻辑运算符

逻辑运算也叫布尔运算,它的运算对象是布尔类型的对象,有了逻辑运算符我们就可以讲多个比较的结果合并在一起进行判断。

Python语言支持以下3种逻辑运算符

运算符 含义
and 左边和右边同时为True,结果为True
or 左边货右边其中一个为True,结果为True
not 如果操作值为True,结果为False
如果操作值为False,结果为True

举个🌰:

>>> 1 < 2 and 3 < 4
True
>>> 1 > 2 and 3 < 4
False
>>> 1 < 2 and 3 > 4
False
>>> 1 > 2 and 3 > 4
False
>>> 1 < 2 or 3 < 4
True
>>> 1 > 2 or 3 < 4
True
>>> 1 < 2 or 3 > 4
True
>>> 1 > 2 or 3 > 4
False
>>> not True
False
>>> not False
True
>>> not 250
False

但是对于逻辑运算符中的andor,其计算结果并不一定是布尔值。而是取决于操作数的类型。

由于Python中的任何对象都能直接进行真值测试(测试该对象的布尔类型值为True或者False),用于if或者while语句的条件判断,也可以作为布尔逻辑运算的操作数。

>>> 3 and 4
4
>>> 4 or 5
4
>>> "Python" and "Love"
'Love'
>>> 'Python' or 250
'Python'

为什么会这样呢?下节课讲~

点点关注不迷路
点点关注不迷路
- END -

瀋凣

2021/04/30  阅读:124  主题:极简黑

作者介绍

瀋凣