点击以下链接可以快速访问全部我发表的Python相关文章:

Nick WU:Nick WU的python文章目录(持续更新中...)​zhuanlan.zhihu.com


1. Python中的布尔值

  • Python中任何对象都有一个固定的布尔值,即非零、非空的对象为真,数字0、空对象和None为假
  • True和False为1和0的特殊显示形式
  • 布尔操作and、or会根据一定规则返回操作对象(下文详细解释)
  • 布尔运算会在结果确定的时候停止运算(短路)

2. Python中的布尔操作

  • and:全真为真,并返回第二个对象
  • or:有一真为真,返回第一个对象
  • not:返回True或者False

(1) and

  1. 真 and 真:返回第二个对象,因为只有第一个和第二个对象同时为真时才为真,即不会短路
  2. 真 and 假:返回第二个对象,即假
  3. 假 and 真:短路,直接返回第一个对象
  4. 假 and 假:短路,直接返回第一个对象
>>> 1 and 2
2
>>> 1 and []
[]
>>> [] and 1
[]
>>> [] and ()
[]

(2) or

  1. 真 or 真:短路,直接返回第一个对象
  2. 真 or 假:短路,直接返回第一个对象
  3. 假 or 真:结果为真,返回第二个对象
  4. 假 or 假:结果为假,返回第二个对象
>>> 1 or 2
1
>>> 1 or []
1
>>> [] or 1
1
>>> [] or {}
{}

(3) not

not的操作比较简单,根据not后对象的真假,输出相反的True或者False

>>> not 1
False
>>> not 0
True
>>> not []
True

3.布尔运算的应用

(1) if/else 三元表达式

A = B if C else D# 等效于:
if C:A = B
else:A = D

含义为:若C成立,A = B;否则 A = D

# Example
>>> A = 1 if True else 2
>>> A
1
>>> A = 1 if False else 2
>>> A
2

(2) 其他应用

  1. 从一个集合中选取非空的对象
X = A or B or C or D or E    # 若A非空则X = A,否则继续看B,若B非空则X = B...

2. 指定默认值

X = A or default    # 若A非空则X = A,否则X为默认值

3. 判断字符串是否为空

# 常规写法:
if X != '':xxx# 简便写法:
if X:xxx

4. filter()函数配合bool()函数将列表中非空对象找出来

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

——以上内容摘自:菜鸟教程

bool()函数可以返回对象的真假

# Example 1:返回列表中的真对象
>>> A = [1, 0, 'sss', [],()]
>>> list(filter(bool, A))
[1, 'sss']# Example 2: 返回列表中的假对象:借助lambda函数造一个not函数
>>> A = [1, 0, 'sss', [],()]
>>> list(filter(lambda x:0 if x else 1, A))
[0, [], ()]# Example 3:【简化写法】借助列表推导返回列表中的真对象
>>> A = [1, 0, 'sss', [],()]
>>> B = [x for x in A if x]
>>> B
[1, 'sss']

any()all()函数分别检测列表中是否存在或全部为真

>>> A = [1, 0, 'sss', [],()]
>>> any(A)
True
>>> all(A)
False

bool python 运算_python中的布尔操作相关推荐

  1. python中集合运算_Python中的集合操作与集合运算

    Python中的集合是一种无序的,无重复值的数据结构类型.Python中的集合可以用来检测元素检测或消除重复的元素. 一.python 集合概述 (1)Python中的集合元素是无序的,即元素没有顺序 ...

  2. bool python 运算_python基础知识和pycharm安装

    昨天大家对我(Python)有了一定的了解,那么今天带大家更加系统化的认识一下我,已经了解我的工作方式 先说一下如果让我去做一件事情得需要那些"配置",其实很简单的,不要把我想的太 ...

  3. python布尔类型运算_Python中布尔类型

    我们已经了解了Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 与运算:只有两个布尔值都为 True 时,计算结果才为 True. True and ...

  4. python布尔类型运算_Python中布尔类型以及与或非运算

    与运算:只有两个布尔值都为 True 时,计算结果才为 True.True and True # ==> True True and False # ==> False False and ...

  5. python中的数字类型格式与运算_Python中的数字类型格式与运算

    出品 Python中的数字(Digital)与数学中的数字相同,可以通过各种各样的运算符实现各种计算,在Python中数字类型的数据格式分为以下几种: 1.整数型(integer) 2.浮点数(flo ...

  6. [转载] python中bool啥意思_Python中的bool类型

    参考链接: Python bool() Python 布尔类型 bool python 中布尔值使用常量True 和 False来表示:注意大小写 比较运算符< > == 等返回的类型就是 ...

  7. python模块xlwt怎么用不了_python中使用 xlwt 操作excel的常见方法与问题

    前言 python可以操作excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的) python中使用xlwt操作excel非常方,和Java使用调框架apache poi相 ...

  8. python字典在编程中的作用_python中的字典操作及字典函数

    字典 dict_fruit = {'apple':'苹果','banana':'香蕉','cherry':'樱桃','avocado':'牛油果','watermelon':'西瓜'} 字典的操作 # ...

  9. python中unicode编码表_Python中的字符串操作和编码Unicode详解

    本文主要给大家介绍了关于 Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧. 字符串类型 str:Unicode字符串.采用''或者r''构造的字符 ...

最新文章

  1. C++转Python这三年,我都经历了什么?
  2. 动图与数据同步关系研究
  3. 数据预处理 参考sql
  4. python更新后yum问题
  5. CPU 是如何执行任务的?
  6. python解析excel公式_[python][openpyxl]读取excel中公式的结果值
  7. Connection timed out: connect; Communications link failure
  8. Java性能调优小技巧
  9. SSO单点登录解决方案[转载]
  10. regexp(正则表达式)的使用
  11. GitKraken 比较好用的 Git 可视化工具
  12. 智能门锁的优劣,我们应该如何有效识别?
  13. 西电计算机科学与技术排名,西安电子科技大学王牌专业有哪些及专业排名
  14. 民兴商学院:适合工薪族的信用卡推荐!
  15. 教你用arduino控制LCD1602液晶屏的底层程序实现(全网最笨的方法)
  16. Macbook Air安装Win7与苹果双系统实操
  17. 百度地图离线开发demo(热力图)
  18. uniapp 微信小程序地图,在高德app、腾讯app、百度app、苹果地图app 中打开
  19. 前端一键自动部署工具
  20. 直流电压传感器(安科瑞-卓宋兰)

热门文章

  1. SpringMVC Mybatis Shiro RestTemplate的实现客户端无状态验证及访问控制【转】
  2. [Python]网络爬虫(七):Python中的正则表达式教程(转)
  3. 会员按天统计、日分时统计
  4. Mybatis源码阅读(五 ):接口层——SqlSession
  5. 1.android体系结构介绍
  6. Hive与Hadoop的调用关系
  7. 表正在被别的用户或进程使用_linux内核对进程的管理分为两个方面
  8. python csv模块用法_python使用csv模块如何将数据存放在一张表的不同行?
  9. vscode运行python文件_vscode怎么运行python文件
  10. linux kvm查看线程状态,kvm线程-005-线程状态-THREAD_JUST_BORN