bool python 运算_python中的布尔操作

f27d6b83af543144b6e26e4f125fbafa.png

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程环形复杂度计算方法有哪些_软件工程复习6165组考题

黑色字体为原本答案,蓝色字体修改补充了复习题组「61-65/61-65/13/13」一、名词解释61.确认测试检查已实现的软件是否满足了需求规格说明中所确定的各种需求,以及软件配置是否完全、正确。(过程:功能性测试---软件配置复查---验收测试----α测…

多线程导出excel高并发_大牛带你深入java多线程与高并发:JMH与Disruptor,确定能学会?...

前言今天我们讲两个内容,第一个是JMH,第二个是Disruptor。这两个内容是给大家做更进一步的这种多线程和高并发的一些专业上的处理。生产环境之中我们很可能不自己定义消息队列,而是使用Disruptor。我们生产环境做测试的时候也不是像我说的那样…

动环监控系统接线图_机房动环监控系统报价

原标题:机房动环监控系统报价机房动环监控系统报价需要根据业务需求来进行报价的,一般机房动环监控系统的价格跟机房的监控面积的大小以及监控的项目是息息相关的,比如一个IDC机房和小型的基站机房的动环监控系统的价格就是完全不一样&#x…

Ubuntu 下PySpark安装

操作系统:Ubuntu20.04所需软件: Java 8 ,Python 3.5 , Scala 2.11.12安装Java 8 sudo apt-get updatesudo apt-get install openjdk-8-jdkjava -version安装scalasudo wget https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.deb …

数据集_自动驾驶数据集

前面介绍了自动驾驶的仿真平台,接下来又收集了目前主要的自动驾驶数据集。抱着这个想法,何不做一个awesome,在git上搜索,已经有人建了一个awesome了,也免得重复造轮子。但是作者很久没更新了,于是决定也加入…

rdd.foreach(print)报错SyntaxError: invalid syntax

问题 解决方法from __future__ import print_function如图:

地铁框架保护的原理_继电保护的基础知识和原理(地铁)

1.继电保护技术发展简史上世纪60年代以前,我国的继电保护主要由传统的机电型继电器构成,其中包括了电磁型继电器和感应型继电器。60年代末70年代初,晶体管保护和整流型保护得到了应用。90年代起,集成电路保护和微机型保…

golang如何生成随机数

目录如何生成随机数示例:未写随机数种子:加上随机数种子后:如何生成随机数 在go语言中,生成随机数需要先添加一个***随机数种子***,否则每次运行生成的随机数都是同样顺序的数字 rand.Seed(time.Now().UnixNano()) r…

golang基础学习笔记

golang基础学习golang1. 认识golang和goland使用1.1 goland插件2. 数据类型2.1 结构体3. 流程控制ifswitchselectforrangeGoto、Break、Continue4. 函数4.1 匿名函数4.2 闭包、递归4.3 延迟调用什么是deferdefer的常见用途释放已经获取的资源从panic中恢复延迟闭包参数即时求值…

git@github.com:Permission denied(publickey).fatal: Could not read form remote repository错误

文章目录前言问题分析解决方法配置客户端配置服务端验证前言 在使用goland从github下载依赖时(git clone github.com/gin-gonic/gin)出现gitgithub.com:Permission denied(publickey).fatal: Could not read form remote repository错误。 问题分析 Permission denied(publi…

go出现missing go.sum entry for module providing package 错误

文章目录前言问题分析解决方法前言 从github下载了别人的代码后直接执行,报missing go.sum entry for module providing package错误 问题分析 代码中使用了第三方库,但是go.mod并没有跟着更新 解决方法 在项目目录下打开终端,执行go mo…

的计时器设置_如何选择最适合自己的计时器?

本文作者是Ultraman,他为了找到最适合自己的计时方法,试验了十多种计时器或者沙漏,总结出了非常棒的经验!相信本文一定会对你有所帮助。 ——李长太大家对番茄工作法一定已经不陌生了,那么进行番茄工作法的时候&#x…

npm install报错 npm ERR,code ERESOLVE npm ERR,ERESOLVE unable to resolve dependency tree

文章目录前言问题分析解决方法转载于前言 在下载npm时报错npm ERR! code ERESOLVE npm ERR! ERESOLEVE unable to resolve dependency tree 问题分析 我的npm版本为8.x,npm6.x之后的版本更加严格了,所以会报错 解决方法 方法1,降级到np…

卡顿严重_微软Win 10游戏模式致《使命召唤:战区》等游戏出现严重卡顿现象

IT之家5月8日消息 据Windowslatest报道,有部分用户报告称Windows 10游戏模式可能对某些硬件的游戏性能产生负面影响。一位用户表示,启用游戏模式后,搭载Radeon RX 5700 XT、RX 480、R9 290等AMD显卡设备以及GTX 980和GTX 1080 Ti等Nvidia显卡…

MySQL的MVCC是什么

文章目录MVCC是什么MVCC的作用MVCC的实现原理Read View是什么Read View如何判断某个版本可以访问MVCC是什么 MVCC(Multiversion concurrency control)是同一行数据保留多版本的一种方式,进而实现并发控制。 在查询时,通过read view和版本链找到对应版本…

go中make、new和直接var的区别

文章目录直接varmakenew小结直接var func main(){var sli []intfmt.Println(sli) // 打印结果为:[]fmt.Println(len(sli)) // 打印结果为:0fmt.Println(cap(sli)) // 打印结果为:0fmt.Println(sli[0]) // panic: index out of…

论述类文本知识框架_高考语文“论述类文本阅读”:三步走,拿满分

【原创首发】新的学期开始了。高三的定位考试也结束了。成绩下来了,有的同学拿着卷子找着我:“老师,你看看,我第一道大题三道错了两道,咋办呀?”高考语文试卷的第一大道试题”论述类文本阅读“这道题&#…

mysql数据自定义随机_Mysql 自定义随机字符串

前几天在开发一个系统,需要用到随机字符串,但是mysql的库函数有没有直接提供,就简单的利用现有的函数东拼西凑出随机字符串来.下面简单的说下实现当时.1.简单粗暴.select ..., substring(MD5(RAND()),floor(RAND()*26)1,6) as rand_str .....…

php连接mysql乱码原因_PHP连接MYSQL出现乱码的原因与解决办法

PHP连接mysql出现乱码的原因与解决方法解决MySql数据库乱码的一个首要前提是保证 数据库数据表前端显示 编码一致,国内项目一般统一设定为GB2312或GBK,而国际化项目则一般使用utf8。另外,字符集设定完毕之后记得重启目标机MySql服务。PHP连接…

linux查看非注释行_Linux筛除空行和注释行的技巧

CentOS7.3学习笔记总结(四十一)- Linux筛除空行和注释行的技巧 在linux系统中的很多文件,写程序的人为了方便查阅整篇文档,写了很多注释,加了很多空行,虽然方便了整体的阅读,但是参数的添加、删除、修改等就没有那么友好了,我们就需要利用命令行筛选出没有这些内容的内容…