(第二版)零基础入门Python小甲鱼-笔记-p11
布尔类型
我们都说只有小孩纸才在对于错之间做选择,而成年人是管它对错老子都要索性编程得世界还是纯真滴
计算机只讲真假不谈感情
我们来介绍Python得另一个重要得类型 ——布尔类型
只有两个值 False True 也就是假或者真
那就很有趣了 如果仍个数值250过去你说它是真还是假 又或者我丢个字符串“假”过去 那它是真假?
大家也别猜疑了我们直接在IDLE测试一下
使用bool()内置函数 可以直接给出True 或者False得结果
这就很可笑了 如果你说Python不认识中文也就算了,我们仍一个False过去你还告诉我是True
其实这是障眼法 去掉双引号试试?
初学者很容易犯这个错误 记住 无论内容是什么 只要出现在引号里面得 它们都是字符串 对于字符串来说 只有空字符串的结果才是False 其他都是True 哪怕只有一个空格也是True
同样的数值无论是多少只有等值于0的结果才是False 其他情况都是True
我这边汇总 返回False的
定义为False的对象:None 和 False
值为0的数字类型 :0 ,0.0 ,0j ,Decimal(0) ,Fraction(0,1)
空的序列和集合:“” ,() ,{} ,[] ,set() ,range()
这里面还有很多符号和关键词大家都很陌生的,不过没关系,咱们这里先建立一个基础的概念,后续都会讲到的哈
咱们说了这么一堆真真假假的到底有啥用呢
前面我们在一个文字小游戏已经介绍过了,几乎在任何一门编程语言中,最重要的就是
分支语句 和 循环语句 没错啦 要实现分支语句和循环语句 都要有一个条件 对不对
这个条件就是真真假假的布尔类型的结果啦
在前面的例子中 条件是比较运算符计算的结果
比如说
if 520 > 250:
print("520比250大!")
else:
print("520不比250大")
其实你怎么搞 这个条件 就是要True或者False的结果
比如说咱们这里可以直接
if bool(250):
print("250 is True")
else:
print("250 is False")
因为 bool(250)得到的结果就是True ,if后面的条件是True 那它当然就是打印250 is True
关于布尔类型还有个小秘密要分享嘞
1 == True 是返回True
0 == False 返回的是False
他们是相等的
那如果我来True + True 是不是等于2呢
那
True + False 答案是1
True - True 答案是0
True - False 答案是1
False + False 答案是0
False + True 答案是1
False - False 答案是0
False - True 答案就是-1
布尔类型就是特殊的整数类型 可以进行整数类型的运算 比如加减乘除等
逻辑运算符
Python 一共有三个逻辑操作符 明细如下
运算符 | 含义 |
and | 左边和右边同时为True,结果为True |
or | 左边或右边其中一个为True,结果为True |
not | 如果操作数为True,结果为False 如果操作数为False,结果为True |
逻辑运算也叫做布尔运算,它的运算对象是布尔类型的对象
有了逻辑运算符,我们就可以将多个比较的结果合并在一起进行判断啦
1、and
and的运算符要求只有左右两个操作数同时为True,那么结果才是True,只要任何一方是False结果都为False.
案例
3 < 4 and 4 < 5
左右两边都是True 对吧所以 返回的是True
左边3大于4 是 False 右边是True 所以返回的是False
左边4小于4 是True 右边 4 大于 5是 False 所以返回的是False
左边 3 > 4 是False 右边 4 > 5 是 False 所以返回的是False
2、or
or 只需要其中一方为True 那么结果就为True 只有左右两个操作数同时为False,结果才会是False
案例
左右两边都是True结果 就是True
左边是False 右边是True 所以返回True
左边是True 右边是False 所以返回True
or只有一种情况返回False 那就是左右两边都是False才会返回False
比如说
左边是False 右边也是False 所以返回的是False
3、not
not运算符只有一个操作数
它的作用呢 是得到一个和操作数相反的布尔类型值
not True 返回的就是 False
not False 返回的就是 True
not 250 返回的就是 False
not 0 返回的就是True
注意点 对于and和or 运算符 它的结果结算它不一定是True 或者False 这样看它的操作数是什么?
Python中任何对象都能直接进行真值测试(测试该对象的布尔类型的值为True或者False),用于if 或者 while 语句的条件判断,也可以作为布尔逻辑运算符的操作数
如果你给到的数值 它返回的也是数值 我们 看一下
3 and 4 返回的是4 4 or 5返回的也是4
如果你给操作数是两个字符串 结果也是字符串
如果给到一个字符串一个数字 结果也是字符串
可以想想是为什么嘞