Python 布尔操作(and/or,Boolean operator)与位操作(&/|,Bitwise operator)

布尔操作的骤死式语义,能大大简化判断逻辑,也即,减少if/else的个数。

再来温故这一精巧的与数学上的逻辑运算完美结合的语言机制:

# Python
>>> a = True
>>> a and [1, 'a', lambda x: x**2]
[1, 'a', <function __main__.<lambda>>]>>> a = False
>>> False or [1, 'a', lambda x: x**2]
[1, 'a', <function __main__.<lambda>>]

来看一个稍微实际点的例子:

processFunc = collapse and (lambda s: ' '.join(s.plit()) or (lambda s: s))

如果 collapse 为假,and 之后的语句不再执行,processFunc 为 False;
如果 collapse为真,processFunc(string) 将压缩空白;否则 processFunc(string) 将返回未改变的参数。

布尔操作的“骤死式”(short-circuiting behavior)相关推荐

  1. Python 布尔操作(and/or,Boolean operator)与位操作(/|,Bitwise operator)

    如标题所言: and(or):boolean operator &(|):bitwise operator 二者的主要区别在于: boolean 算子(and/or)主要用于布尔值(True/ ...

  2. bool python 运算_python中的布尔操作

    点击以下链接可以快速访问全部我发表的Python相关文章: Nick WU:Nick WU的python文章目录(持续更新中...)​zhuanlan.zhihu.com 1. Python中的布尔值 ...

  3. C语言如何编程换算小时秒,c语言编写 输入一个以秒为单位的时间值,将其转化成“时:分:秒”的形式输出,将转换操作定义成函式...

    c语言编写 输入一个以秒为单位的时间值,将其转化成"时:分:秒"的形式输出,将转换操作定义成函式以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整 ...

  4. 关于win10几分钟无任何操作就假死机,就只有鼠标能动

    关于win10几分钟无任何操作就假死机,就只有鼠标能动,其他键盘都无反应的解决方案

  5. 【C4D】基础快捷键操作,布尔操作,全选单个图形——动不了怎么办+选不上怎么办+怎么移动+怎么拉平面或拉平一圈线

    前言 说惯谎言的人,最清楚不过承诺的脆弱,大多数时候,人们并非刻意说谎,他们只是对自己说出的话没有真正深入的了解--<死人经> \;\\\; C4D--选不上是因为没有C掉 . 内部挤压等 ...

  6. VTK - Boolean布尔操作

    简介:本博文记录vtk关于布尔操作的应用,以及其中的坑,供小伙伴参考. VTK中包含可以执行布尔操作的接口有vtkImplicitBoolean,vtkBooleanOperationPolyData ...

  7. macOS新版本终于删掉自带Python2,这波操作连Python死忠粉都叫好

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 喜大普奔,苹果现已正式推出的ma ...

  8. 基本数据类型 int操作 bool布尔操作 str字符串操作 for in 循环

     基本数据类型概况 1. int 整数 2. str 字符串 3. bool 布尔值 4. list 列表. 一般存放大量的数据 ["门神xxxx", "风扇哥xxxx& ...

  9. 队列的定义与操作-顺序存储,链式存储(C语言)

    顺序存储: typedef int Position; struct QNode {ElementType *Data; /* 存储元素的数组 */Position Front, Rear; /* 队 ...

最新文章

  1. Qmake变量variable
  2. Nacos源码HostReactor
  3. 08.认证考试注意事项
  4. 怎样将计算机添加桌面快捷方式,Win10系统下如何将程序快捷方式添加到桌面上?【图文教程】...
  5. the job was canceled什么意思_宇宙中的第一种颜色是什么?
  6. 什么是js的严格模式
  7. .NET Standard@Xamarin.Forms
  8. 项目参与度较低怎么办?
  9. 让vim显示空格,及tab字符
  10. windows+caffe下对CIFAR训练
  11. Effective Java~35. 用实例域代替序数
  12. vim修改tab默认4个空格
  13. linux环境下protobuf的安装与使用
  14. 为啥JAVA虚拟机不开发系统_我的YMLF OS (LINUX)上装了java为何运行不了eclipse 还提示没有java虚拟机 ?...
  15. mysql 8.0开启远程访问
  16. FFmpeg源代码简单分析-其他-日志输出系统(av_log()等)
  17. J2EE下使用AJAX(四) 隐藏帧 -- 史前的AJAX实现
  18. 那就祝你有数不尽的鲜花和浪漫
  19. mysql数据库占用太多的CPU_mysql数据库CPU使用率过高解决方案
  20. 智能红外遥控器(五):手机蓝牙控制格力空调

热门文章

  1. Java设计模式与实践
  2. 新手开发记录:把ListView、Adapter的逻辑捋顺,做一个微博热搜吧
  3. 代理模式 委派模式 策略模式_委派模式和策略模式
  4. python微信公众菜单_Python实现微信公众平台自定义菜单实例
  5. 用户界面设计参考 (ZT)
  6. BZOJ5475 WC2019数树(prufer+容斥原理+树形dp+多项式exp)
  7. 静态代理和动态代理设计模式
  8. hdu 5919--Sequence II(主席树--求区间不同数个数+区间第k大)
  9. nodejs学习笔记(3)
  10. 通信系统仿真中的几个能量归一化问题