Python 1-08 bool NoneType
Python 1-08 bool NoneType
一、布尔类型(bool)
在 Python 语言中,布尔类型只有两个值,True 与 False 是 int 的子类型。
>>> 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 运算符比较的是对象,当然是错误的。
Python 内置的 bool() 函数
>>> 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。
二、空值类型(NoneType)
空值是 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"))
内置常量
有少数的常量存在于内置命名空间中。 它们是:
False bool 类型的假值。 给 False 赋值是非法的并会引发 SyntaxError。
True bool 类型的真值。 给 True 赋值是非法的并会引发 SyntaxError。
None NoneType 类型的唯一值。 **None 经常用于表示缺少值**,当因为默认参数未传递给函数时。 给 None 赋值是非法的并会引发 SyntaxError。
逻辑值检测
任何对象都可以进行逻辑值的检测,以便在 if 或 while 作为条件或是作为下文所述布尔运算的操作数来使用。
一个对象在默认情况下均被视为真值,除非当该对象被调用时其所属类定义了 bool() 方法且返回 False 或是定义了 len() 方法且返回零。
下面基本完整地列出了会被视为假值的内置对象:
被定义为假值的常量: None 和 False。
任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
空的序列和多项集: '', (), [], {}, set(), range(0)
产生布尔值结果的运算和内置函数总是返回 0 或 False 作为假值,1 或 True 作为真值,除非另行说明。 (重要例外:布尔运算 or 和 and 总是返回其中一个操作数。)
布尔运算 — not, and, or
这些属于布尔运算,按优先级升序排列:
not 的优先级比非布尔运算符低,因此 not a == b 会被解读为 not (a == b) 而 a == not b 会引发语法错误。
x or y if x is false, then y, else x (1)
x and y if x is false, then x, else y (2)
not x if x is false, then True, else False (3)
这是个短路运算符,因此只有在第一个参数为假值时才会对第二个参数求值。
这是个短路运算符,因此只有在第一个参数为真值时才会对第二个参数求值。
练习 参见 Python 1-05 数字 练习
Python 1-08 bool NoneType相关推荐
- python进阶08并发之四map, apply, map_async, apply_async差异
原创博客地址: python进阶08并发之四map, apply, map_async, apply_async差异 差异矩阵 python封装了4种常用方法,用于实现并发 其差异如下 Multi ...
- Python 布尔类型 bool
python 中布尔值使用常量True 和 False来表示:注意大小写 比较运算符< > ==等返回的类型就是bool类型:布尔类型通常在 if 和 while 语句中应用 这边需要注意 ...
- 【自学Python】Python布尔型(bool)
Python布尔型(bool) Python布尔型(bool)教程 Python 布尔类型也叫 bool 类型,Python 布尔类型取值为 True 和 False.Python bool 类型的 ...
- python 取反_利用python怎么对bool布尔值进行取反
利用python怎么对bool布尔值进行取反 发布时间:2020-12-14 14:49:17 来源:亿速云 阅读:71 这期内容当中小编将会给大家带来有关利用python怎么对bool布尔值进行取反 ...
- python中nonetype指什么_关于python:什么是’NoneType’对象?
当我运行python脚本时,我得到了这个错误: TypeError: cannot concatenate 'str' and 'NoneType' objects 我很确定"str&quo ...
- python 布尔值 bool( ) 与逻辑运算符
逻辑运算符 notandor 运算符优先级 not > and >or printer(x or y) x为非零,则返回x,否则返回y 学习python中有什么不懂的地方,小编这里推荐加小 ...
- python中布尔型的值_在python中对于bool布尔值的取反操作
背景 根据公司业务的需求,需要做一个对于mysql数据库的大批量更新.脚本嘛也是干干单单.使用了redis的队列做缓存,可以异步并发的多任务进行更新. 有点难受的地方在于,请求访问时,因为一些网速,速 ...
- python numpy中bool变量转为1或0
三种方式: 第一种方式:后面添加 .astype(int), 示例 import numpy as np a = np.array([0.5,0.4,0.6]) print((a>0.5).as ...
- python day003_int/str/bool/for循环
编码 1. 最早的计算机编码是ASCII. 美国人创建的. 包含了英文字母(大写字母, 小写字母). 数字, 标点等特殊字符!@#$% 128个码位 2**7 在此基础上加了一位 2 ...
最新文章
- [Spring实战系列](5)Spring应用上下文
- AI部署:聊一聊深度学习中的模型权重
- spring-aop-01
- Video.js实现rtmp视频播放
- java rsa 验_Java使用RSA加密解密签名及校验
- php mysql rpm包_MYSQL RPM包安装
- 堪比整容!学会这些可视化技巧,让你的图表分分钟高级起来
- android 加载系统私有库,Android 搭建私有maven仓库及上传项目
- Android Sqite数据库 11
- VMware centos7配置以及SecureCRT连接
- 2019年中国航空三字代码对照表完全汇总
- Python可视化——随机漫步
- java微信公众号短信验证码_解决微信端公众号网页获取短信验证码ajax重复调用两次的问题...
- 鸿合一体机触屏没反应怎么办_电脑一体机触摸屏没反应 触摸屏电脑一体机常见故障解决方法...
- 用python计算准确率_Python下的scikit-learn预测准确率计算(代码实例)
- 一个高性能无锁非阻塞链表队列
- “烫烫烫烫烫烫烫烫烫烫烫烫烫...
- 代码应用jFinal+AngularJs未来javaEE开发的趋势——程序员的福音
- Web基础与apache讲解与搭建
- 打字不会学计算机,电脑打字基础知识、打字指法,不会的快来看哦!
热门文章
- 高通要求苹果就专利侵权支付3100万美元赔偿金
- ORACLE数据库ORA-00257解决
- yolov7使用onnx推理(带不带NMS)
- java如何获取单框的值_javaWeb获取文本框的值
- C语言查表法实现CRC-16计算
- 米莱狄的机器人是_米莱狄胜率狂飙登顶,无视兵线强拆基地,这波增强简直100分!...
- 学生网站模板 品优购 (3页) HTML+CSS+JavaScript 大学生网购网页作品商城网页设计作业模板 学生网页制作源代码下载
- 高端智能电视派系之争:华为小米、三星索尼、海信创维
- JAVA重点类 多线程Thread 创建 生命周期 同步
- 双向数据绑定原理(Vue)